home *** CD-ROM | disk | FTP | other *** search
MacBinary | 1993-10-23 | 16.5 KB | [ TEXT/MPS ]
open in: MacOS 8.1
extracted
|
Win98
extracted
|
DOS
extracted
view JSON data
|
view as text
This file was processed as: MacBinary
(archive/macBinary ).
You can browse this item here: perldb.pl
Confidence Program Detection Match Type Support
10%
dexvert
MacBinary (archive/macBinary)
fallback
Supported
1%
dexvert
Claris Works palette files (other/clarisWorksPaletteFiles)
ext
Unsupported
1%
dexvert
Text File (text/txt)
fallback
Supported
100%
file
MacBinary II, inited, Sat Oct 23 01:19:16 1993, modified Sat Oct 23 01:19:16 1993, creator 'MPS ', type ASCII, 16167 bytes "perldb.pl" , at 0x3fa7 428 bytes resource
default (weak)
99%
file
data
default
74%
TrID
Macintosh plain text (MacBinary)
default
25%
TrID
MacBinary 2
default (weak)
100%
siegfried
fmt/1762 MacBinary (II)
default
100%
lsar
MacBinary
default
id metadata key value macFileType [ TEXT] macFileCreator [ MPS ]
hex view +--------+-------------------------+-------------------------+--------+--------+ |00000000| 00 09 70 65 72 6c 64 62 | 2e 70 6c 00 00 00 00 00 |..perldb|.pl.....| |00000010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |00000040| 00 54 45 58 54 4d 50 53 | 20 01 00 00 00 00 00 00 |.TEXTMPS| .......| |00000050| 00 00 00 00 00 3f 27 00 | 00 01 ac a8 ee 6f 54 a8 |.....?'.|.....oT.| |00000060| ee 6f 54 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |.oT.....|........| |00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 fc 54 00 00 |........|.....T..| |00000080| 70 61 63 6b 61 67 65 20 | 44 42 3b 0d 0d 23 20 6d |package |DB;..# m| |00000090| 6f 64 69 66 69 65 64 20 | 50 65 72 6c 20 64 65 62 |odified |Perl deb| |000000a0| 75 67 67 65 72 2c 20 74 | 6f 20 62 65 20 72 75 6e |ugger, t|o be run| |000000b0| 20 66 72 6f 6d 20 45 6d | 61 63 73 20 69 6e 20 70 | from Em|acs in p| |000000c0| 65 72 6c 64 62 2d 6d 6f | 64 65 0d 23 20 52 61 79 |erldb-mo|de.# Ray| |000000d0| 20 4c 69 73 63 68 6e 65 | 72 20 28 75 75 6e 65 74 | Lischne|r (uunet| |000000e0| 21 6d 6e 74 67 66 78 21 | 6c 69 73 63 68 29 20 61 |!mntgfx!|lisch) a| |000000f0| 73 20 6f 66 20 35 20 4e | 6f 76 20 31 39 39 30 0d |s of 5 N|ov 1990.| |00000100| 23 20 4a 6f 68 61 6e 20 | 56 72 6f 6d 61 6e 73 20 |# Johan |Vromans | |00000110| 2d 2d 20 75 70 67 72 61 | 64 65 20 74 6f 20 34 2e |-- upgra|de to 4.| |00000120| 30 20 70 6c 20 31 30 0d | 0d 24 68 65 61 64 65 72 |0 pl 10.|.$header| |00000130| 20 3d 20 27 24 52 43 53 | 66 69 6c 65 3a 20 70 65 | = '$RCS|file: pe| |00000140| 72 6c 64 62 2e 70 6c 2c | 76 20 24 24 52 65 76 69 |rldb.pl,|v $$Revi| |00000150| 73 69 6f 6e 3a 20 34 2e | 30 2e 31 2e 33 20 24 24 |sion: 4.|0.1.3 $$| |00000160| 44 61 74 65 3a 20 39 32 | 2f 30 36 2f 30 38 20 31 |Date: 92|/06/08 1| |00000170| 33 3a 34 33 3a 35 37 20 | 24 27 3b 0d 23 0d 23 20 |3:43:57 |$';.#.# | |00000180| 54 68 69 73 20 66 69 6c | 65 20 69 73 20 61 75 74 |This fil|e is aut| |00000190| 6f 6d 61 74 69 63 61 6c | 6c 79 20 69 6e 63 6c 75 |omatical|ly inclu| |000001a0| 64 65 64 20 69 66 20 79 | 6f 75 20 64 6f 20 70 65 |ded if y|ou do pe| |000001b0| 72 6c 20 2d 64 2e 0d 23 | 20 49 74 27 73 20 70 72 |rl -d..#| It's pr| |000001c0| 6f 62 61 62 6c 79 20 6e | 6f 74 20 75 73 65 66 75 |obably n|ot usefu| |000001d0| 6c 20 74 6f 20 69 6e 63 | 6c 75 64 65 20 74 68 69 |l to inc|lude thi| |000001e0| 73 20 79 6f 75 72 73 65 | 6c 66 2e 0d 23 0d 23 20 |s yourse|lf..#.# | |000001f0| 50 65 72 6c 20 73 75 70 | 70 6c 69 65 73 20 74 68 |Perl sup|plies th| |00000200| 65 20 76 61 6c 75 65 73 | 20 66 6f 72 20 40 6c 69 |e values| for @li| |00000210| 6e 65 20 61 6e 64 20 25 | 73 75 62 2e 20 20 49 74 |ne and %|sub. It| |00000220| 20 65 66 66 65 63 74 69 | 76 65 6c 79 20 69 6e 73 | effecti|vely ins| |00000230| 65 72 74 73 0d 23 20 61 | 20 64 6f 20 44 42 27 44 |erts.# a| do DB'D| |00000240| 42 28 3c 6c 69 6e 65 6e | 75 6d 3e 29 3b 20 69 6e |B(<linen|um>); in| |00000250| 20 66 72 6f 6e 74 20 6f | 66 20 65 76 65 72 79 20 | front o|f every | |00000260| 70 6c 61 63 65 20 74 68 | 61 74 20 63 61 6e 0d 23 |place th|at can.#| |00000270| 20 68 61 76 65 20 61 20 | 62 72 65 61 6b 70 6f 69 | have a |breakpoi| |00000280| 6e 74 2e 20 20 49 74 20 | 61 6c 73 6f 20 69 6e 73 |nt. It |also ins| |00000290| 65 72 74 73 20 61 20 64 | 6f 20 27 70 65 72 6c 64 |erts a d|o 'perld| |000002a0| 62 2e 70 6c 27 20 62 65 | 66 6f 72 65 20 74 68 65 |b.pl' be|fore the| |000002b0| 20 66 69 72 73 74 20 6c | 69 6e 65 2e 0d 23 0d 23 | first l|ine..#.#| |000002c0| 20 24 4c 6f 67 3a 09 70 | 65 72 6c 64 62 2e 70 6c | $Log:.p|erldb.pl| |000002d0| 2c 76 20 24 0d 23 20 52 | 65 76 69 73 69 6f 6e 20 |,v $.# R|evision | |000002e0| 34 2e 30 2e 31 2e 33 20 | 20 39 32 2f 30 36 2f 30 |4.0.1.3 | 92/06/0| |000002f0| 38 20 20 31 33 3a 34 33 | 3a 35 37 20 20 6c 77 61 |8 13:43|:57 lwa| |00000300| 6c 6c 0d 23 20 70 61 74 | 63 68 32 30 3a 20 73 75 |ll.# pat|ch20: su| |00000310| 70 70 6f 72 74 20 66 6f | 72 20 4d 53 44 4f 53 20 |pport fo|r MSDOS | |00000320| 66 6f 6c 64 65 64 20 69 | 6e 74 6f 20 70 65 72 6c |folded i|nto perl| |00000330| 64 62 2e 70 6c 0d 23 20 | 70 61 74 63 68 32 30 3a |db.pl.# |patch20:| |00000340| 20 70 65 72 6c 64 62 20 | 63 6f 75 6c 64 6e 27 74 | perldb |couldn't| |00000350| 20 64 65 62 75 67 20 66 | 69 6c 65 20 63 6f 6e 74 | debug f|ile cont| |00000360| 61 69 6e 69 6e 67 20 27 | 2d 27 2c 20 73 75 63 68 |aining '|-', such| |00000370| 20 61 73 20 53 54 44 49 | 4e 20 64 65 73 69 67 6e | as STDI|N design| |00000380| 61 74 6f 72 0d 23 20 0d | 23 20 52 65 76 69 73 69 |ator.# .|# Revisi| |00000390| 6f 6e 20 34 2e 30 2e 31 | 2e 32 20 20 39 31 2f 31 |on 4.0.1|.2 91/1| |000003a0| 31 2f 30 35 20 20 31 37 | 3a 35 35 3a 35 38 20 20 |1/05 17|:55:58 | |000003b0| 6c 77 61 6c 6c 0d 23 20 | 70 61 74 63 68 31 31 3a |lwall.# |patch11:| |000003c0| 20 70 65 72 6c 64 62 2e | 70 6c 20 6d 6f 64 69 66 | perldb.|pl modif| |000003d0| 69 65 64 20 74 6f 20 72 | 75 6e 20 77 69 74 68 69 |ied to r|un withi| |000003e0| 6e 20 65 6d 61 63 73 20 | 69 6e 20 70 65 72 6c 64 |n emacs |in perld| |000003f0| 62 2d 6d 6f 64 65 0d 23 | 20 0d 23 20 52 65 76 69 |b-mode.#| .# Revi| |00000400| 73 69 6f 6e 20 34 2e 30 | 2e 31 2e 31 20 20 39 31 |sion 4.0|.1.1 91| |00000410| 2f 30 36 2f 30 37 20 20 | 31 31 3a 31 37 3a 34 34 |/06/07 |11:17:44| |00000420| 20 20 6c 77 61 6c 6c 0d | 23 20 70 61 74 63 68 34 | lwall.|# patch4| |00000430| 3a 20 61 64 64 65 64 20 | 24 5e 50 20 76 61 72 69 |: added |$^P vari| |00000440| 61 62 6c 65 20 74 6f 20 | 63 6f 6e 74 72 6f 6c 20 |able to |control | |00000450| 63 61 6c 6c 69 6e 67 20 | 6f 66 20 70 65 72 6c 64 |calling |of perld| |00000460| 62 20 72 6f 75 74 69 6e | 65 73 0d 23 20 70 61 74 |b routin|es.# pat| |00000470| 63 68 34 3a 20 64 65 62 | 75 67 67 65 72 20 73 6f |ch4: deb|ugger so| |00000480| 6d 65 74 69 6d 65 73 20 | 6c 69 73 74 65 64 20 77 |metimes |listed w| |00000490| 72 6f 6e 67 20 6e 75 6d | 62 65 72 20 6f 66 20 6c |rong num|ber of l| |000004a0| 69 6e 65 73 20 66 6f 72 | 20 61 20 73 74 61 74 65 |ines for| a state| |000004b0| 6d 65 6e 74 0d 23 20 0d | 23 20 52 65 76 69 73 69 |ment.# .|# Revisi| |000004c0| 6f 6e 20 34 2e 30 20 20 | 39 31 2f 30 33 2f 32 30 |on 4.0 |91/03/20| |000004d0| 20 20 30 31 3a 32 35 3a | 35 30 20 20 6c 77 61 6c | 01:25:|50 lwal| |000004e0| 6c 0d 23 20 34 2e 30 20 | 62 61 73 65 6c 69 6e 65 |l.# 4.0 |baseline| |000004f0| 2e 0d 23 20 0d 23 20 52 | 65 76 69 73 69 6f 6e 20 |..# .# R|evision | |00000500| 33 2e 30 2e 31 2e 36 20 | 20 39 31 2f 30 31 2f 31 |3.0.1.6 | 91/01/1| |00000510| 31 20 20 31 38 3a 30 38 | 3a 35 38 20 20 6c 77 61 |1 18:08|:58 lwa| |00000520| 6c 6c 0d 23 20 70 61 74 | 63 68 34 32 3a 20 40 5f |ll.# pat|ch42: @_| |00000530| 20 63 6f 75 6c 64 6e 27 | 74 20 62 65 20 61 63 63 | couldn'|t be acc| |00000540| 65 73 73 65 64 20 66 72 | 6f 6d 20 64 65 62 75 67 |essed fr|om debug| |00000550| 67 65 72 0d 23 20 0d 23 | 20 52 65 76 69 73 69 6f |ger.# .#| Revisio| |00000560| 6e 20 33 2e 30 2e 31 2e | 35 20 20 39 30 2f 31 31 |n 3.0.1.|5 90/11| |00000570| 2f 31 30 20 20 30 31 3a | 34 30 3a 32 36 20 20 6c |/10 01:|40:26 l| |00000580| 77 61 6c 6c 0d 23 20 70 | 61 74 63 68 33 38 3a 20 |wall.# p|atch38: | |00000590| 74 68 65 20 64 65 62 75 | 67 67 65 72 20 77 6f 75 |the debu|gger wou| |000005a0| 6c 64 6e 27 74 20 73 74 | 6f 70 20 63 6f 72 72 65 |ldn't st|op corre| |000005b0| 63 74 6c 79 20 6f 72 20 | 64 6f 20 61 63 74 69 6f |ctly or |do actio| |000005c0| 6e 20 72 6f 75 74 69 6e | 65 73 0d 23 20 0d 23 20 |n routin|es.# .# | |000005d0| 52 65 76 69 73 69 6f 6e | 20 33 2e 30 2e 31 2e 34 |Revision| 3.0.1.4| |000005e0| 20 20 39 30 2f 31 30 2f | 31 35 20 20 31 37 3a 34 | 90/10/|15 17:4| |000005f0| 30 3a 33 38 20 20 6c 77 | 61 6c 6c 0d 23 20 70 61 |0:38 lw|all.# pa| |00000600| 74 63 68 32 39 3a 20 61 | 64 64 65 64 20 63 61 6c |tch29: a|dded cal| |00000610| 6c 65 72 0d 23 20 70 61 | 74 63 68 32 39 3a 20 74 |ler.# pa|tch29: t| |00000620| 68 65 20 64 65 62 75 67 | 67 65 72 20 6e 6f 77 20 |he debug|ger now | |00000630| 75 6e 64 65 72 73 74 61 | 6e 64 73 20 70 61 63 6b |understa|nds pack| |00000640| 61 67 65 73 20 61 6e 64 | 20 65 76 61 6c 73 0d 23 |ages and| evals.#| |00000650| 20 70 61 74 63 68 32 39 | 3a 20 73 63 72 69 70 74 | patch29|: script| |00000660| 73 20 6e 6f 77 20 72 75 | 6e 20 61 74 20 61 6c 6d |s now ru|n at alm| |00000670| 6f 73 74 20 66 75 6c 6c | 20 73 70 65 65 64 20 75 |ost full| speed u| |00000680| 6e 64 65 72 20 74 68 65 | 20 64 65 62 75 67 67 65 |nder the| debugge| |00000690| 72 0d 23 20 70 61 74 63 | 68 32 39 3a 20 6d 6f 72 |r.# patc|h29: mor| |000006a0| 65 20 76 61 72 69 61 62 | 6c 65 73 20 61 72 65 20 |e variab|les are | |000006b0| 73 65 74 74 61 62 6c 65 | 20 66 72 6f 6d 20 64 65 |settable| from de| |000006c0| 62 75 67 67 65 72 0d 23 | 20 0d 23 20 52 65 76 69 |bugger.#| .# Revi| |000006d0| 73 69 6f 6e 20 33 2e 30 | 2e 31 2e 33 20 20 39 30 |sion 3.0|.1.3 90| |000006e0| 2f 30 38 2f 30 39 20 20 | 30 34 3a 30 30 3a 35 38 |/08/09 |04:00:58| |000006f0| 20 20 6c 77 61 6c 6c 0d | 23 20 70 61 74 63 68 31 | lwall.|# patch1| |00000700| 39 3a 20 64 65 62 75 67 | 67 65 72 20 6e 6f 77 20 |9: debug|ger now | |00000710| 61 6c 6c 6f 77 73 20 63 | 6f 6e 74 69 6e 75 61 74 |allows c|ontinuat| |00000720| 69 6f 6e 20 6c 69 6e 65 | 73 0d 23 20 70 61 74 63 |ion line|s.# patc| |00000730| 68 31 39 3a 20 64 65 62 | 75 67 67 65 72 20 63 61 |h19: deb|ugger ca| |00000740| 6e 20 6e 6f 77 20 64 75 | 6d 70 20 6c 69 73 74 73 |n now du|mp lists| |00000750| 20 6f 66 20 76 61 72 69 | 61 62 6c 65 73 0d 23 20 | of vari|ables.# | |00000760| 70 61 74 63 68 31 39 3a | 20 64 65 62 75 67 67 65 |patch19:| debugge| |00000770| 72 20 63 61 6e 20 6e 6f | 77 20 61 64 64 20 61 6c |r can no|w add al| |00000780| 69 61 73 65 73 20 65 61 | 73 69 6c 79 20 66 72 6f |iases ea|sily fro| |00000790| 6d 20 70 72 6f 6d 70 74 | 0d 23 20 0d 23 20 52 65 |m prompt|.# .# Re| |000007a0| 76 69 73 69 6f 6e 20 33 | 2e 30 2e 31 2e 32 20 20 |vision 3|.0.1.2 | |000007b0| 39 30 2f 30 33 2f 31 32 | 20 20 31 36 3a 33 39 3a |90/03/12| 16:39:| |000007c0| 33 39 20 20 6c 77 61 6c | 6c 0d 23 20 70 61 74 63 |39 lwal|l.# patc| |000007d0| 68 31 33 3a 20 70 65 72 | 6c 20 2d 64 20 64 69 64 |h13: per|l -d did| |000007e0| 6e 27 74 20 66 6f 72 6d | 61 74 20 73 74 61 63 6b |n't form|at stack| |000007f0| 20 74 72 61 63 65 73 20 | 6f 66 20 2a 66 6f 6f 20 | traces |of *foo | |00000800| 72 69 67 68 74 0d 23 20 | 70 61 74 63 68 31 33 3a |right.# |patch13:| |00000810| 20 70 65 72 6c 20 2d 64 | 20 77 69 70 65 64 20 6f | perl -d| wiped o| |00000820| 75 74 20 73 63 61 6c 61 | 72 20 72 65 74 75 72 6e |ut scala|r return| |00000830| 20 76 61 6c 75 65 73 20 | 6f 66 20 73 75 62 72 6f | values |of subro| |00000840| 75 74 69 6e 65 73 0d 23 | 20 0d 23 20 52 65 76 69 |utines.#| .# Revi| |00000850| 73 69 6f 6e 20 33 2e 30 | 2e 31 2e 31 20 20 38 39 |sion 3.0|.1.1 89| |00000860| 2f 31 30 2f 32 36 20 20 | 32 33 3a 31 34 3a 30 32 |/10/26 |23:14:02| |00000870| 20 20 6c 77 61 6c 6c 0d | 23 20 70 61 74 63 68 31 | lwall.|# patch1| |00000880| 3a 20 52 43 53 20 65 78 | 70 61 6e 64 65 64 20 61 |: RCS ex|panded a| |00000890| 6e 20 75 6e 69 6e 74 65 | 6e 64 65 64 20 24 48 65 |n uninte|nded $He| |000008a0| 61 64 65 72 20 69 6e 20 | 6c 69 62 2f 70 65 72 6c |ader in |lib/perl| |000008b0| 64 62 2e 70 6c 0d 23 20 | 0d 23 20 52 65 76 69 73 |db.pl.# |.# Revis| |000008c0| 69 6f 6e 20 33 2e 30 20 | 20 38 39 2f 31 30 2f 31 |ion 3.0 | 89/10/1| |000008d0| 38 20 20 31 35 3a 31 39 | 3a 34 36 20 20 6c 77 61 |8 15:19|:46 lwa| |000008e0| 6c 6c 0d 23 20 33 2e 30 | 20 62 61 73 65 6c 69 6e |ll.# 3.0| baselin| |000008f0| 65 0d 23 20 0d 23 20 52 | 65 76 69 73 69 6f 6e 20 |e.# .# R|evision | |00000900| 32 2e 30 20 20 38 38 2f | 30 36 2f 30 35 20 20 30 |2.0 88/|06/05 0| |00000910| 30 3a 30 39 3a 34 35 20 | 20 72 6f 6f 74 0d 23 20 |0:09:45 | root.# | |00000920| 42 61 73 65 6c 69 6e 65 | 20 76 65 72 73 69 6f 6e |Baseline| version| |00000930| 20 32 2e 30 2e 0d 23 20 | 0d 23 0d 0d 24 63 6f 6e | 2.0..# |.#..$con| |00000940| 73 6f 6c 65 20 3d 20 22 | 44 65 76 3a 43 6f 6e 73 |sole = "|Dev:Cons| |00000950| 6f 6c 65 22 3b 0d 24 72 | 63 66 69 6c 65 3d 22 2e |ole";.$r|cfile=".| |00000960| 70 65 72 6c 64 62 22 3b | 0d 0d 6f 70 65 6e 28 49 |perldb";|..open(I| |00000970| 4e 2c 20 22 3c 24 63 6f | 6e 73 6f 6c 65 22 29 20 |N, "<$co|nsole") | |00000980| 7c 7c 20 6f 70 65 6e 28 | 49 4e 2c 20 20 22 3c 26 ||| open(|IN, "<&| |00000990| 53 54 44 49 4e 22 29 3b | 09 23 20 73 6f 20 77 65 |STDIN");|.# so we| |000009a0| 20 64 6f 6e 27 74 20 64 | 69 6e 67 6c 65 20 73 74 | don't d|ingle st| |000009b0| 64 69 6e 0d 6f 70 65 6e | 28 4f 55 54 2c 22 3e 24 |din.open|(OUT,">$| |000009c0| 63 6f 6e 73 6f 6c 65 22 | 29 20 7c 7c 20 6f 70 65 |console"|) || ope| |000009d0| 6e 28 4f 55 54 2c 20 22 | 3e 26 53 54 44 4f 55 54 |n(OUT, "|>&STDOUT| |000009e0| 22 29 3b 09 23 20 73 6f | 20 77 65 20 64 6f 6e 27 |");.# so| we don'| |000009f0| 74 20 64 6f 6e 67 6c 65 | 20 73 74 64 6f 75 74 0d |t dongle| stdout.| |00000a00| 73 65 6c 65 63 74 28 4f | 55 54 29 3b 0d 24 7c 20 |select(O|UT);.$| | |00000a10| 3d 20 31 3b 09 09 09 09 | 23 20 66 6f 72 20 44 42 |= 1;....|# for DB| |00000a20| 27 4f 55 54 0d 73 65 6c | 65 63 74 28 53 54 44 4f |'OUT.sel|ect(STDO| |00000a30| 55 54 29 3b 0d 24 7c 20 | 3d 20 31 3b 09 09 09 09 |UT);.$| |= 1;....| |00000a40| 23 20 66 6f 72 20 72 65 | 61 6c 20 53 54 44 4f 55 |# for re|al STDOU| |00000a50| 54 0d 24 73 75 62 20 3d | 20 27 27 3b 0d 0d 24 68 |T.$sub =| '';..$h| |00000a60| 65 61 64 65 72 20 3d 7e | 20 73 2f 2e 48 65 61 64 |eader =~| s/.Head| |00000a70| 65 72 3a 20 28 5b 5e 2c | 5d 2b 29 2c 76 28 5c 73 |er: ([^,|]+),v(\s| |00000a80| 2b 5c 53 2b 5c 73 2b 5c | 53 2b 29 2e 2a 24 2f 24 |+\S+\s+\|S+).*$/$| |00000a90| 31 24 32 2f 3b 0d 70 72 | 69 6e 74 20 4f 55 54 20 |1$2/;.pr|int OUT | |00000aa0| 22 5c 6e 4c 6f 61 64 69 | 6e 67 20 44 42 20 72 6f |"\nLoadi|ng DB ro| |00000ab0| 75 74 69 6e 65 73 20 66 | 72 6f 6d 20 24 68 65 61 |utines f|rom $hea| |00000ac0| 64 65 72 5c 6e 22 3b 0d | 70 72 69 6e 74 20 4f 55 |der\n";.|print OU| |00000ad0| 54 20 22 5c 6e 45 6e 74 | 65 72 20 68 20 66 6f 72 |T "\nEnt|er h for| |00000ae0| 20 68 65 6c 70 2e 5c 6e | 5c 6e 22 3b 0d 0d 73 75 | help.\n|\n";..su| |00000af0| 62 20 44 42 20 7b 0d 20 | 20 20 20 26 73 61 76 65 |b DB {. | &save| |00000b00| 3b 0d 20 20 20 20 28 24 | 70 61 63 6b 61 67 65 2c |;. ($|package,| |00000b10| 20 24 66 69 6c 65 6e 61 | 6d 65 2c 20 24 6c 69 6e | $filena|me, $lin| |00000b20| 65 29 20 3d 20 63 61 6c | 6c 65 72 3b 0d 20 20 20 |e) = cal|ler;. | |00000b30| 20 24 75 73 65 72 63 6f | 6e 74 65 78 74 20 3d 20 | $userco|ntext = | |00000b40| 27 28 24 40 2c 20 24 21 | 2c 20 24 5b 2c 20 24 2c |'($@, $!|, $[, $,| |00000b50| 2c 20 24 2f 2c 20 24 5c | 29 20 3d 20 40 73 61 76 |, $/, $\|) = @sav| |00000b60| 65 64 3b 27 20 2e 0d 09 | 22 70 61 63 6b 61 67 65 |ed;' ...|"package| |00000b70| 20 24 70 61 63 6b 61 67 | 65 3b 22 3b 09 09 23 20 | $packag|e;";..# | |00000b80| 74 68 69 73 20 77 6f 6e | 27 74 20 6c 65 74 20 74 |this won|'t let t| |00000b90| 68 65 6d 20 6d 6f 64 69 | 66 79 2c 20 61 6c 61 73 |hem modi|fy, alas| |00000ba0| 0d 20 20 20 20 6c 6f 63 | 61 6c 28 24 5e 50 29 20 |. loc|al($^P) | |00000bb0| 3d 20 30 3b 09 09 09 23 | 20 64 6f 6e 27 74 20 64 |= 0;...#| don't d| |00000bc0| 65 62 75 67 20 6f 75 72 | 20 6f 77 6e 20 65 76 61 |ebug our| own eva| |00000bd0| 6c 73 0d 20 20 20 20 6c | 6f 63 61 6c 28 2a 64 62 |ls. l|ocal(*db| |00000be0| 6c 69 6e 65 29 20 3d 20 | 22 5f 3c 24 66 69 6c 65 |line) = |"_<$file| |00000bf0| 6e 61 6d 65 22 3b 0d 20 | 20 20 20 24 6d 61 78 20 |name";. | $max | |00000c00| 3d 20 24 23 64 62 6c 69 | 6e 65 3b 0d 20 20 20 20 |= $#dbli|ne;. | |00000c10| 69 66 20 28 28 24 73 74 | 6f 70 2c 24 61 63 74 69 |if (($st|op,$acti| |00000c20| 6f 6e 29 20 3d 20 73 70 | 6c 69 74 28 2f 5c 30 2f |on) = sp|lit(/\0/| |00000c30| 2c 24 64 62 6c 69 6e 65 | 7b 24 6c 69 6e 65 7d 29 |,$dbline|{$line})| |00000c40| 29 20 7b 0d 09 69 66 20 | 28 24 73 74 6f 70 20 65 |) {..if |($stop e| |00000c50| 71 20 27 31 27 29 20 7b | 0d 09 20 20 20 20 24 73 |q '1') {|.. $s| |00000c60| 69 67 6e 61 6c 20 7c 3d | 20 31 3b 0d 09 7d 0d 09 |ignal |=| 1;..}..| |00000c70| 65 6c 73 65 20 7b 0d 09 | 20 20 20 20 24 65 76 61 |else {..| $eva| |00000c80| 6c 61 72 67 20 3d 20 22 | 5c 24 44 42 27 73 69 67 |larg = "|\$DB'sig| |00000c90| 6e 61 6c 20 7c 3d 20 64 | 6f 20 7b 24 73 74 6f 70 |nal |= d|o {$stop| |00000ca0| 3b 7d 22 3b 20 26 65 76 | 61 6c 3b 0d 09 20 20 20 |;}"; &ev|al;.. | |00000cb0| 20 24 64 62 6c 69 6e 65 | 7b 24 6c 69 6e 65 7d 20 | $dbline|{$line} | |00000cc0| 3d 7e 20 73 2f 3b 39 28 | 24 7c 5c 30 29 2f 24 31 |=~ s/;9(|$|\0)/$1| |00000cd0| 2f 3b 0d 09 7d 0d 20 20 | 20 20 7d 0d 20 20 20 20 |/;..}. | }. | |00000ce0| 69 66 20 28 24 73 69 6e | 67 6c 65 20 7c 7c 20 24 |if ($sin|gle || $| |00000cf0| 74 72 61 63 65 20 7c 7c | 20 24 73 69 67 6e 61 6c |trace ||| $signal| |00000d00| 29 20 7b 0d 09 69 66 20 | 28 24 65 6d 61 63 73 29 |) {..if |($emacs)| |00000d10| 20 7b 0d 09 20 20 20 20 | 70 72 69 6e 74 20 4f 55 | {.. |print OU| |00000d20| 54 20 22 5c 30 33 32 5c | 30 33 32 24 66 69 6c 65 |T "\032\|032$file| |00000d30| 6e 61 6d 65 3a 24 6c 69 | 6e 65 3a 30 5c 6e 22 3b |name:$li|ne:0\n";| |00000d40| 0d 09 7d 20 65 6c 73 65 | 20 7b 0d 09 20 20 20 20 |..} else| {.. | |00000d50| 70 72 69 6e 74 20 4f 55 | 54 20 22 24 70 61 63 6b |print OU|T "$pack| |00000d60| 61 67 65 27 22 20 75 6e | 6c 65 73 73 20 24 73 75 |age'" un|less $su| |00000d70| 62 20 3d 7e 20 2f 27 2f | 3b 0d 09 20 20 20 20 70 |b =~ /'/|;.. p| |00000d80| 72 69 6e 74 20 4f 55 54 | 20 22 24 73 75 62 28 24 |rint OUT| "$sub($| |00000d90| 66 69 6c 65 6e 61 6d 65 | 3a 24 6c 69 6e 65 29 3a |filename|:$line):| |00000da0| 5c 74 22 2c 24 64 62 6c | 69 6e 65 5b 24 6c 69 6e |\t",$dbl|ine[$lin| |00000db0| 65 5d 3b 0d 09 20 20 20 | 20 66 6f 72 20 28 24 69 |e];.. | for ($i| |00000dc0| 20 3d 20 24 6c 69 6e 65 | 20 2b 20 31 3b 20 24 69 | = $line| + 1; $i| |00000dd0| 20 3c 3d 20 24 6d 61 78 | 20 26 26 20 24 64 62 6c | <= $max| && $dbl| |00000de0| 69 6e 65 5b 24 69 5d 20 | 3d 3d 20 30 3b 20 2b 2b |ine[$i] |== 0; ++| |00000df0| 24 69 29 20 7b 0d 09 09 | 6c 61 73 74 20 69 66 20 |$i) {...|last if | |00000e00| 24 64 62 6c 69 6e 65 5b | 24 69 5d 20 3d 7e 20 2f |$dbline[|$i] =~ /| |00000e10| 5e 5c 73 2a 28 7d 7c 23 | 7c 5c 6e 29 2f 3b 0d 09 |^\s*(}|#||\n)/;..| |00000e20| 09 70 72 69 6e 74 20 4f | 55 54 20 22 24 73 75 62 |.print O|UT "$sub| |00000e30| 28 24 66 69 6c 65 6e 61 | 6d 65 3a 24 69 29 3a 5c |($filena|me:$i):\| |00000e40| 74 22 2c 24 64 62 6c 69 | 6e 65 5b 24 69 5d 3b 0d |t",$dbli|ne[$i];.| |00000e50| 09 20 20 20 20 7d 0d 09 | 7d 0d 20 20 20 20 7d 0d |. }..|}. }.| |00000e60| 20 20 20 20 24 65 76 61 | 6c 61 72 67 20 3d 20 24 | $eva|larg = $| |00000e70| 61 63 74 69 6f 6e 2c 20 | 26 65 76 61 6c 20 69 66 |action, |&eval if| |00000e80| 20 24 61 63 74 69 6f 6e | 3b 0d 20 20 20 20 69 66 | $action|;. if| |00000e90| 20 28 24 73 69 6e 67 6c | 65 20 7c 7c 20 24 73 69 | ($singl|e || $si| |00000ea0| 67 6e 61 6c 29 20 7b 0d | 09 24 65 76 61 6c 61 72 |gnal) {.|.$evalar| |00000eb0| 67 20 3d 20 24 70 72 65 | 2c 20 26 65 76 61 6c 20 |g = $pre|, &eval | |00000ec0| 69 66 20 24 70 72 65 3b | 0d 09 70 72 69 6e 74 20 |if $pre;|..print | |00000ed0| 4f 55 54 20 24 23 73 74 | 61 63 6b 20 2e 20 22 20 |OUT $#st|ack . " | |00000ee0| 6c 65 76 65 6c 73 20 64 | 65 65 70 20 69 6e 20 73 |levels d|eep in s| |00000ef0| 75 62 72 6f 75 74 69 6e | 65 20 63 61 6c 6c 73 21 |ubroutin|e calls!| |00000f00| 5c 6e 22 0d 09 20 20 20 | 20 69 66 20 24 73 69 6e |\n".. | if $sin| |00000f10| 67 6c 65 20 26 20 34 3b | 0d 09 24 73 74 61 72 74 |gle & 4;|..$start| |00000f20| 20 3d 20 24 6c 69 6e 65 | 3b 0d 20 20 20 20 20 20 | = $line|;. | |00000f30| 43 4d 44 3a 0d 09 77 68 | 69 6c 65 20 28 28 70 72 |CMD:..wh|ile ((pr| |00000f40| 69 6e 74 20 4f 55 54 20 | 22 20 20 44 42 3c 22 2c |int OUT |" DB<",| |00000f50| 20 24 23 68 69 73 74 2b | 31 2c 20 22 3e 20 22 29 | $#hist+|1, "> ")| |00000f60| 2c 20 24 63 6d 64 3d 26 | 67 65 74 73 29 20 7b 0d |, $cmd=&|gets) {.| |00000f70| 09 20 20 20 20 7b 0d 09 | 09 24 73 69 6e 67 6c 65 |. {..|.$single| |00000f80| 20 3d 20 30 3b 0d 09 09 | 24 73 69 67 6e 61 6c 20 | = 0;...|$signal | |00000f90| 3d 20 30 3b 0d 09 09 24 | 63 6d 64 20 65 71 20 27 |= 0;...$|cmd eq '| |00000fa0| 27 20 26 26 20 65 78 69 | 74 20 30 3b 0d 09 09 63 |' && exi|t 0;...c| |00000fb0| 68 6f 70 28 24 63 6d 64 | 29 3b 0d 09 09 23 20 54 |hop($cmd|);...# T| |00000fc0| 68 69 73 20 77 69 6c 6c | 20 72 65 6d 6f 76 65 20 |his will| remove | |00000fd0| 74 68 65 20 70 72 6f 6d | 70 74 20 70 69 63 6b 65 |the prom|pt picke| |00000fe0| 64 20 75 70 20 62 79 20 | 4d 50 57 0d 09 09 24 74 |d up by |MPW...$t| |00000ff0| 6d 70 5f 70 72 6f 6d 70 | 74 20 3d 20 22 20 20 44 |mp_promp|t = " D| |00001000| 42 3c 22 20 2e 20 28 24 | 23 68 69 73 74 20 2b 20 |B<" . ($|#hist + | |00001010| 31 29 20 2e 20 22 3e 20 | 22 3b 0d 09 09 24 63 6d |1) . "> |";...$cm| |00001020| 64 20 3d 7e 20 73 2f 5e | 24 74 6d 70 5f 70 72 6f |d =~ s/^|$tmp_pro| |00001030| 6d 70 74 28 2e 2a 29 24 | 2f 5c 31 2f 3b 0d 09 09 |mpt(.*)$|/\1/;...| |00001040| 23 20 4d 50 57 20 52 65 | 6d 6f 76 61 6c 20 65 6e |# MPW Re|moval en| |00001050| 64 65 64 2e 2e 2e 0d 09 | 09 24 63 6d 64 20 3d 7e |ded.....|.$cmd =~| |00001060| 20 73 2f 5c 5c 24 2f 2f | 20 26 26 20 64 6f 20 7b | s/\\$//| && do {| |00001070| 0d 09 09 20 20 20 20 70 | 72 69 6e 74 20 4f 55 54 |... p|rint OUT| |00001080| 20 22 20 20 63 6f 6e 74 | 3a 20 22 3b 0d 09 09 20 | " cont|: ";... | |00001090| 20 20 20 24 63 6d 64 20 | 2e 3d 20 26 67 65 74 73 | $cmd |.= &gets| |000010a0| 3b 0d 09 09 20 20 20 20 | 72 65 64 6f 20 43 4d 44 |;... |redo CMD| |000010b0| 3b 0d 09 09 7d 3b 0d 09 | 09 24 63 6d 64 20 3d 7e |;...};..|.$cmd =~| |000010c0| 20 2f 5e 71 24 2f 20 26 | 26 20 65 78 69 74 20 30 | /^q$/ &|& exit 0| |000010d0| 3b 0d 09 09 24 63 6d 64 | 20 3d 7e 20 2f 5e 24 2f |;...$cmd| =~ /^$/| |000010e0| 20 26 26 20 28 24 63 6d | 64 20 3d 20 24 6c 61 73 | && ($cm|d = $las| |000010f0| 74 73 74 65 70 29 3b 0d | 09 09 70 75 73 68 28 40 |tstep);.|..push(@| |00001100| 68 69 73 74 2c 24 63 6d | 64 29 20 69 66 20 6c 65 |hist,$cm|d) if le| |00001110| 6e 67 74 68 28 24 63 6d | 64 29 20 3e 20 31 3b 0d |ngth($cm|d) > 1;.| |00001120| 09 09 28 24 69 29 20 3d | 20 73 70 6c 69 74 28 2f |..($i) =| split(/| |00001130| 5c 73 2b 2f 2c 24 63 6d | 64 29 3b 0d 09 09 65 76 |\s+/,$cm|d);...ev| |00001140| 61 6c 20 22 5c 24 63 6d | 64 20 3d 7e 20 24 61 6c |al "\$cm|d =~ $al| |00001150| 69 61 73 7b 24 69 7d 22 | 2c 20 70 72 69 6e 74 20 |ias{$i}"|, print | |00001160| 4f 55 54 20 24 40 20 69 | 66 20 24 61 6c 69 61 73 |OUT $@ i|f $alias| |00001170| 7b 24 69 7d 3b 0d 09 09 | 24 63 6d 64 20 3d 7e 20 |{$i};...|$cmd =~ | |00001180| 2f 5e 68 24 2f 20 26 26 | 20 64 6f 20 7b 0d 09 09 |/^h$/ &&| do {...| |00001190| 20 20 20 20 70 72 69 6e | 74 20 4f 55 54 20 22 0d | prin|t OUT ".| |000011a0| 54 09 09 53 74 61 63 6b | 20 74 72 61 63 65 2e 0d |T..Stack| trace..| |000011b0| 73 09 09 53 69 6e 67 6c | 65 20 73 74 65 70 2e 0d |s..Singl|e step..| |000011c0| 6e 09 09 4e 65 78 74 2c | 20 73 74 65 70 73 20 6f |n..Next,| steps o| |000011d0| 76 65 72 20 73 75 62 72 | 6f 75 74 69 6e 65 20 63 |ver subr|outine c| |000011e0| 61 6c 6c 73 2e 0d 72 09 | 09 52 65 74 75 72 6e 20 |alls..r.|.Return | |000011f0| 66 72 6f 6d 20 63 75 72 | 72 65 6e 74 20 73 75 62 |from cur|rent sub| |00001200| 72 6f 75 74 69 6e 65 2e | 0d 63 20 5b 6c 69 6e 65 |routine.|.c [line| |00001210| 5d 09 43 6f 6e 74 69 6e | 75 65 3b 20 6f 70 74 69 |].Contin|ue; opti| |00001220| 6f 6e 61 6c 6c 79 20 69 | 6e 73 65 72 74 73 20 61 |onally i|nserts a| |00001230| 20 6f 6e 65 2d 74 69 6d | 65 2d 6f 6e 6c 79 20 62 | one-tim|e-only b| |00001240| 72 65 61 6b 70 6f 69 6e | 74 20 0d 09 09 61 74 20 |reakpoin|t ...at | |00001250| 74 68 65 20 73 70 65 63 | 69 66 69 65 64 20 6c 69 |the spec|ified li| |00001260| 6e 65 2e 0d 3c 43 52 3e | 09 09 52 65 70 65 61 74 |ne..<CR>|..Repeat| |00001270| 20 6c 61 73 74 20 6e 20 | 6f 72 20 73 2e 0d 6c 20 | last n |or s..l | |00001280| 6d 69 6e 2b 69 6e 63 72 | 09 4c 69 73 74 20 69 6e |min+incr|.List in| |00001290| 63 72 2b 31 20 6c 69 6e | 65 73 20 73 74 61 72 74 |cr+1 lin|es start| |000012a0| 69 6e 67 20 61 74 20 6d | 69 6e 2e 0d 6c 20 6d 69 |ing at m|in..l mi| |000012b0| 6e 2d 6d 61 78 09 4c 69 | 73 74 20 6c 69 6e 65 73 |n-max.Li|st lines| |000012c0| 2e 0d 6c 20 6c 69 6e 65 | 09 09 4c 69 73 74 20 6c |..l line|..List l| |000012d0| 69 6e 65 3b 0d 6c 09 09 | 4c 69 73 74 20 6e 65 78 |ine;.l..|List nex| |000012e0| 74 20 77 69 6e 64 6f 77 | 2e 0d 2d 09 09 4c 69 73 |t window|..-..Lis| |000012f0| 74 20 70 72 65 76 69 6f | 75 73 20 77 69 6e 64 6f |t previo|us windo| |00001300| 77 2e 0d 77 20 6c 69 6e | 65 09 09 4c 69 73 74 20 |w..w lin|e..List | |00001310| 77 69 6e 64 6f 77 20 61 | 72 6f 75 6e 64 20 6c 69 |window a|round li| |00001320| 6e 65 2e 0d 6c 20 73 75 | 62 6e 61 6d 65 09 4c 69 |ne..l su|bname.Li| |00001330| 73 74 20 73 75 62 72 6f | 75 74 69 6e 65 2e 0d 66 |st subro|utine..f| |00001340| 20 66 69 6c 65 6e 61 6d | 65 09 53 77 69 74 63 68 | filenam|e.Switch| |00001350| 20 74 6f 20 66 69 6c 65 | 6e 61 6d 65 2e 0d 2f 70 | to file|name../p| |00001360| 61 74 74 65 72 6e 2f 09 | 53 65 61 72 63 68 20 66 |attern/.|Search f| |00001370| 6f 72 77 61 72 64 73 20 | 66 6f 72 20 70 61 74 74 |orwards |for patt| |00001380| 65 72 6e 3b 20 66 69 6e | 61 6c 20 2f 20 69 73 20 |ern; fin|al / is | |00001390| 6f 70 74 69 6f 6e 61 6c | 2e 0d 3f 70 61 74 74 65 |optional|..?patte| |000013a0| 72 6e 3f 09 53 65 61 72 | 63 68 20 62 61 63 6b 77 |rn?.Sear|ch backw| |000013b0| 61 72 64 73 20 66 6f 72 | 20 70 61 74 74 65 72 6e |ards for| pattern| |000013c0| 2e 0d 4c 09 09 4c 69 73 | 74 20 62 72 65 61 6b 70 |..L..Lis|t breakp| |000013d0| 6f 69 6e 74 73 20 61 6e | 64 20 61 63 74 69 6f 6e |oints an|d action| |000013e0| 73 2e 0d 53 09 09 4c 69 | 73 74 20 73 75 62 72 6f |s..S..Li|st subro| |000013f0| 75 74 69 6e 65 20 6e 61 | 6d 65 73 2e 0d 74 09 09 |utine na|mes..t..| |00001400| 54 6f 67 67 6c 65 20 74 | 72 61 63 65 20 6d 6f 64 |Toggle t|race mod| |00001410| 65 2e 0d 62 20 5b 6c 69 | 6e 65 5d 20 5b 63 6f 6e |e..b [li|ne] [con| |00001420| 64 69 74 69 6f 6e 5d 0d | 09 09 53 65 74 20 62 72 |dition].|..Set br| |00001430| 65 61 6b 70 6f 69 6e 74 | 3b 20 6c 69 6e 65 20 64 |eakpoint|; line d| |00001440| 65 66 61 75 6c 74 73 20 | 74 6f 20 74 68 65 20 63 |efaults |to the c| |00001450| 75 72 72 65 6e 74 20 65 | 78 65 63 75 74 69 6f 6e |urrent e|xecution| |00001460| 20 6c 69 6e 65 3b 20 0d | 09 09 63 6f 6e 64 69 74 | line; .|..condit| |00001470| 69 6f 6e 20 62 72 65 61 | 6b 73 20 69 66 20 69 74 |ion brea|ks if it| |00001480| 20 65 76 61 6c 75 61 74 | 65 73 20 74 6f 20 74 72 | evaluat|es to tr| |00001490| 75 65 2c 20 64 65 66 61 | 75 6c 74 73 20 74 6f 20 |ue, defa|ults to | |000014a0| 5c 27 31 5c 27 2e 0d 62 | 20 73 75 62 6e 61 6d 65 |\'1\'..b| subname| |000014b0| 20 5b 63 6f 6e 64 69 74 | 69 6f 6e 5d 0d 09 09 53 | [condit|ion]...S| |000014c0| 65 74 20 62 72 65 61 6b | 70 6f 69 6e 74 20 61 74 |et break|point at| |000014d0| 20 66 69 72 73 74 20 6c | 69 6e 65 20 6f 66 20 73 | first l|ine of s| |000014e0| 75 62 72 6f 75 74 69 6e | 65 2e 0d 64 20 5b 6c 69 |ubroutin|e..d [li| |000014f0| 6e 65 5d 09 44 65 6c 65 | 74 65 20 62 72 65 61 6b |ne].Dele|te break| |00001500| 70 6f 69 6e 74 2e 0d 44 | 09 09 44 65 6c 65 74 65 |point..D|..Delete| |00001510| 20 61 6c 6c 20 62 72 65 | 61 6b 70 6f 69 6e 74 73 | all bre|akpoints| |00001520| 2e 0d 61 20 5b 6c 69 6e | 65 5d 20 63 6f 6d 6d 61 |..a [lin|e] comma| |00001530| 6e 64 0d 09 09 53 65 74 | 20 61 6e 20 61 63 74 69 |nd...Set| an acti| |00001540| 6f 6e 20 74 6f 20 62 65 | 20 64 6f 6e 65 20 62 65 |on to be| done be| |00001550| 66 6f 72 65 20 74 68 65 | 20 6c 69 6e 65 20 69 73 |fore the| line is| |00001560| 20 65 78 65 63 75 74 65 | 64 2e 0d 09 09 53 65 71 | execute|d....Seq| |00001570| 75 65 6e 63 65 20 69 73 | 3a 20 63 68 65 63 6b 20 |uence is|: check | |00001580| 66 6f 72 20 62 72 65 61 | 6b 70 6f 69 6e 74 2c 20 |for brea|kpoint, | |00001590| 70 72 69 6e 74 20 6c 69 | 6e 65 20 69 66 20 6e 65 |print li|ne if ne| |000015a0| 63 65 73 73 61 72 79 2c | 0d 09 09 64 6f 20 61 63 |cessary,|...do ac| |000015b0| 74 69 6f 6e 2c 20 70 72 | 6f 6d 70 74 20 75 73 65 |tion, pr|ompt use| |000015c0| 72 20 69 66 20 62 72 65 | 61 6b 70 6f 69 6e 74 20 |r if bre|akpoint | |000015d0| 6f 72 20 73 74 65 70 2c | 20 65 76 61 6c 75 61 74 |or step,| evaluat| |000015e0| 65 20 6c 69 6e 65 2e 0d | 41 09 09 44 65 6c 65 74 |e line..|A..Delet| |000015f0| 65 20 61 6c 6c 20 61 63 | 74 69 6f 6e 73 2e 0d 56 |e all ac|tions..V| |00001600| 20 5b 70 6b 67 20 5b 76 | 61 72 73 5d 5d 09 4c 69 | [pkg [v|ars]].Li| |00001610| 73 74 20 73 6f 6d 65 20 | 28 64 65 66 61 75 6c 74 |st some |(default| |00001620| 20 61 6c 6c 29 20 76 61 | 72 69 61 62 6c 65 73 20 | all) va|riables | |00001630| 69 6e 20 70 61 63 6b 61 | 67 65 20 28 64 65 66 61 |in packa|ge (defa| |00001640| 75 6c 74 20 63 75 72 72 | 65 6e 74 29 2e 0d 58 20 |ult curr|ent)..X | |00001650| 5b 76 61 72 73 5d 09 53 | 61 6d 65 20 61 73 20 5c |[vars].S|ame as \| |00001660| 22 56 20 63 75 72 72 65 | 6e 74 70 61 63 6b 61 67 |"V curre|ntpackag| |00001670| 65 20 5b 76 61 72 73 5d | 5c 22 2e 0d 3c 20 63 6f |e [vars]|\"..< co| |00001680| 6d 6d 61 6e 64 09 44 65 | 66 69 6e 65 20 63 6f 6d |mmand.De|fine com| |00001690| 6d 61 6e 64 20 62 65 66 | 6f 72 65 20 70 72 6f 6d |mand bef|ore prom| |000016a0| 70 74 2e 0d 3e 20 63 6f | 6d 6d 61 6e 64 09 44 65 |pt..> co|mmand.De| |000016b0| 66 69 6e 65 20 63 6f 6d | 6d 61 6e 64 20 61 66 74 |fine com|mand aft| |000016c0| 65 72 20 70 72 6f 6d 70 | 74 2e 0d 21 20 6e 75 6d |er promp|t..! num| |000016d0| 62 65 72 09 52 65 64 6f | 20 63 6f 6d 6d 61 6e 64 |ber.Redo| command| |000016e0| 20 28 64 65 66 61 75 6c | 74 20 70 72 65 76 69 6f | (defaul|t previo| |000016f0| 75 73 20 63 6f 6d 6d 61 | 6e 64 29 2e 0d 21 20 2d |us comma|nd)..! -| |00001700| 6e 75 6d 62 65 72 09 52 | 65 64 6f 20 6e 75 6d 62 |number.R|edo numb| |00001710| 65 72 5c 27 74 68 20 74 | 6f 20 6c 61 73 74 20 63 |er\'th t|o last c| |00001720| 6f 6d 6d 61 6e 64 2e 0d | 48 20 2d 6e 75 6d 62 65 |ommand..|H -numbe| |00001730| 72 09 44 69 73 70 6c 61 | 79 20 6c 61 73 74 20 6e |r.Displa|y last n| |00001740| 75 6d 62 65 72 20 63 6f | 6d 6d 61 6e 64 73 20 28 |umber co|mmands (| |00001750| 64 65 66 61 75 6c 74 20 | 61 6c 6c 29 2e 0d 71 20 |default |all)..q | |00001760| 6f 72 20 5e 44 09 09 51 | 75 69 74 2e 0d 70 20 65 |or ^D..Q|uit..p e| |00001770| 78 70 72 09 09 53 61 6d | 65 20 61 73 20 5c 22 70 |xpr..Sam|e as \"p| |00001780| 72 69 6e 74 20 44 42 27 | 4f 55 54 20 65 78 70 72 |rint DB'|OUT expr| |00001790| 5c 22 20 69 6e 20 63 75 | 72 72 65 6e 74 20 70 61 |\" in cu|rrent pa| |000017a0| 63 6b 61 67 65 2e 0d 3d | 20 5b 61 6c 69 61 73 20 |ckage..=| [alias | |000017b0| 76 61 6c 75 65 5d 09 44 | 65 66 69 6e 65 20 61 20 |value].D|efine a | |000017c0| 63 6f 6d 6d 61 6e 64 20 | 61 6c 69 61 73 2c 20 6f |command |alias, o| |000017d0| 72 20 6c 69 73 74 20 63 | 75 72 72 65 6e 74 20 61 |r list c|urrent a| |000017e0| 6c 69 61 73 65 73 2e 0d | 63 6f 6d 6d 61 6e 64 09 |liases..|command.| |000017f0| 09 45 78 65 63 75 74 65 | 20 61 73 20 61 20 70 65 |.Execute| as a pe| |00001800| 72 6c 20 73 74 61 74 65 | 6d 65 6e 74 20 69 6e 20 |rl state|ment in | |00001810| 63 75 72 72 65 6e 74 20 | 70 61 63 6b 61 67 65 2e |current |package.| |00001820| 0d 0d 22 3b 0d 09 09 20 | 20 20 20 6e 65 78 74 20 |..";... | next | |00001830| 43 4d 44 3b 20 7d 3b 0d | 09 09 24 63 6d 64 20 3d |CMD; };.|..$cmd =| |00001840| 7e 20 2f 5e 74 24 2f 20 | 26 26 20 64 6f 20 7b 0d |~ /^t$/ |&& do {.| |00001850| 09 09 20 20 20 20 24 74 | 72 61 63 65 20 3d 20 21 |.. $t|race = !| |00001860| 24 74 72 61 63 65 3b 0d | 09 09 20 20 20 20 70 72 |$trace;.|.. pr| |00001870| 69 6e 74 20 4f 55 54 20 | 22 54 72 61 63 65 20 3d |int OUT |"Trace =| |00001880| 20 22 2e 28 24 74 72 61 | 63 65 3f 22 6f 6e 22 3a | ".($tra|ce?"on":| |00001890| 22 6f 66 66 22 29 2e 22 | 5c 6e 22 3b 0d 09 09 20 |"off")."|\n";... | |000018a0| 20 20 20 6e 65 78 74 20 | 43 4d 44 3b 20 7d 3b 0d | next |CMD; };.| |000018b0| 09 09 24 63 6d 64 20 3d | 7e 20 2f 5e 53 24 2f 20 |..$cmd =|~ /^S$/ | |000018c0| 26 26 20 64 6f 20 7b 0d | 09 09 20 20 20 20 66 6f |&& do {.|.. fo| |000018d0| 72 65 61 63 68 20 24 73 | 75 62 6e 61 6d 65 20 28 |reach $s|ubname (| |000018e0| 73 6f 72 74 28 6b 65 79 | 73 20 25 73 75 62 29 29 |sort(key|s %sub))| |000018f0| 20 7b 0d 09 09 09 70 72 | 69 6e 74 20 4f 55 54 20 | {....pr|int OUT | |00001900| 24 73 75 62 6e 61 6d 65 | 2c 22 5c 6e 22 3b 0d 09 |$subname|,"\n";..| |00001910| 09 20 20 20 20 7d 0d 09 | 09 20 20 20 20 6e 65 78 |. }..|. nex| |00001920| 74 20 43 4d 44 3b 20 7d | 3b 0d 09 09 24 63 6d 64 |t CMD; }|;...$cmd| |00001930| 20 3d 7e 20 73 2f 5e 58 | 5c 62 2f 56 20 24 70 61 | =~ s/^X|\b/V $pa| |00001940| 63 6b 61 67 65 2f 3b 0d | 09 09 24 63 6d 64 20 3d |ckage/;.|..$cmd =| |00001950| 7e 20 2f 5e 56 24 2f 20 | 26 26 20 64 6f 20 7b 0d |~ /^V$/ |&& do {.| |00001960| 09 09 20 20 20 20 24 63 | 6d 64 20 3d 20 27 56 20 |.. $c|md = 'V | |00001970| 24 70 61 63 6b 61 67 65 | 27 3b 20 7d 3b 0d 09 09 |$package|'; };...| |00001980| 24 63 6d 64 20 3d 7e 20 | 2f 5e 56 5c 62 5c 73 2a |$cmd =~ |/^V\b\s*| |00001990| 28 5c 53 2b 29 5c 73 2a | 28 2e 2a 29 2f 20 26 26 |(\S+)\s*|(.*)/ &&| |000019a0| 20 64 6f 20 7b 0d 09 09 | 20 20 20 20 24 70 61 63 | do {...| $pac| |000019b0| 6b 6e 61 6d 65 20 3d 20 | 24 31 3b 0d 09 09 20 20 |kname = |$1;... | |000019c0| 20 20 40 76 61 72 73 20 | 3d 20 73 70 6c 69 74 28 | @vars |= split(| |000019d0| 27 20 27 2c 24 32 29 3b | 0d 09 09 20 20 20 20 64 |' ',$2);|... d| |000019e0| 6f 20 27 64 75 6d 70 76 | 61 72 2e 70 6c 27 20 75 |o 'dumpv|ar.pl' u| |000019f0| 6e 6c 65 73 73 20 64 65 | 66 69 6e 65 64 20 26 6d |nless de|fined &m| |00001a00| 61 69 6e 27 64 75 6d 70 | 76 61 72 3b 0d 09 09 20 |ain'dump|var;... | |00001a10| 20 20 20 69 66 20 28 64 | 65 66 69 6e 65 64 20 26 | if (d|efined &| |00001a20| 6d 61 69 6e 27 64 75 6d | 70 76 61 72 29 20 7b 0d |main'dum|pvar) {.| |00001a30| 09 09 09 26 6d 61 69 6e | 27 64 75 6d 70 76 61 72 |...&main|'dumpvar| |00001a40| 28 24 70 61 63 6b 6e 61 | 6d 65 2c 40 76 61 72 73 |($packna|me,@vars| |00001a50| 29 3b 0d 09 09 20 20 20 | 20 7d 0d 09 09 20 20 20 |);... | }... | |00001a60| 20 65 6c 73 65 20 7b 0d | 09 09 09 70 72 69 6e 74 | else {.|...print| |00001a70| 20 44 42 27 4f 55 54 20 | 22 64 75 6d 70 76 61 72 | DB'OUT |"dumpvar| |00001a80| 2e 70 6c 20 6e 6f 74 20 | 61 76 61 69 6c 61 62 6c |.pl not |availabl| |00001a90| 65 2e 5c 6e 22 3b 0d 09 | 09 20 20 20 20 7d 0d 09 |e.\n";..|. }..| |00001aa0| 09 20 20 20 20 6e 65 78 | 74 20 43 4d 44 3b 20 7d |. nex|t CMD; }| |00001ab0| 3b 0d 09 09 24 63 6d 64 | 20 3d 7e 20 2f 5e 66 5c |;...$cmd| =~ /^f\| |00001ac0| 62 5c 73 2a 28 2e 2a 29 | 2f 20 26 26 20 64 6f 20 |b\s*(.*)|/ && do | |00001ad0| 7b 0d 09 09 20 20 20 20 | 24 66 69 6c 65 20 3d 20 |{... |$file = | |00001ae0| 24 31 3b 0d 09 09 20 20 | 20 20 69 66 20 28 21 24 |$1;... | if (!$| |00001af0| 66 69 6c 65 29 20 7b 0d | 09 09 09 70 72 69 6e 74 |file) {.|...print| |00001b00| 20 4f 55 54 20 22 54 68 | 65 20 6f 6c 64 20 66 20 | OUT "Th|e old f | |00001b10| 63 6f 6d 6d 61 6e 64 20 | 69 73 20 6e 6f 77 20 74 |command |is now t| |00001b20| 68 65 20 72 20 63 6f 6d | 6d 61 6e 64 2e 5c 6e 22 |he r com|mand.\n"| |00001b30| 3b 0d 09 09 09 70 72 69 | 6e 74 20 4f 55 54 20 22 |;....pri|nt OUT "| |00001b40| 54 68 65 20 6e 65 77 20 | 66 20 63 6f 6d 6d 61 6e |The new |f comman| |00001b50| 64 20 73 77 69 74 63 68 | 65 73 20 66 69 6c 65 6e |d switch|es filen| |00001b60| 61 6d 65 73 2e 5c 6e 22 | 3b 0d 09 09 09 6e 65 78 |ames.\n"|;....nex| |00001b70| 74 20 43 4d 44 3b 0d 09 | 09 20 20 20 20 7d 0d 09 |t CMD;..|. }..| |00001b80| 09 20 20 20 20 69 66 20 | 28 21 64 65 66 69 6e 65 |. if |(!define| |00001b90| 64 20 24 5f 6d 61 69 6e | 7b 27 5f 3c 27 20 2e 20 |d $_main|{'_<' . | |00001ba0| 24 66 69 6c 65 7d 29 20 | 7b 0d 09 09 09 69 66 20 |$file}) |{....if | |00001bb0| 28 28 24 74 72 79 29 20 | 3d 20 67 72 65 70 28 6d |(($try) |= grep(m| |00001bc0| 23 5e 5f 3c 2e 2a 24 66 | 69 6c 65 23 2c 20 6b 65 |#^_<.*$f|ile#, ke| |00001bd0| 79 73 20 25 5f 6d 61 69 | 6e 29 29 20 7b 0d 09 09 |ys %_mai|n)) {...| |00001be0| 09 20 20 20 20 24 66 69 | 6c 65 20 3d 20 73 75 62 |. $fi|le = sub| |00001bf0| 73 74 72 28 24 74 72 79 | 2c 32 29 3b 0d 09 09 09 |str($try|,2);....| |00001c00| 20 20 20 20 70 72 69 6e | 74 20 22 5c 6e 24 66 69 | prin|t "\n$fi| |00001c10| 6c 65 3a 5c 6e 22 3b 0d | 09 09 09 7d 0d 09 09 20 |le:\n";.|...}... | |00001c20| 20 20 20 7d 0d 09 09 20 | 20 20 20 69 66 20 28 21 | }... | if (!| |00001c30| 64 65 66 69 6e 65 64 20 | 24 5f 6d 61 69 6e 7b 27 |defined |$_main{'| |00001c40| 5f 3c 27 20 2e 20 24 66 | 69 6c 65 7d 29 20 7b 0d |_<' . $f|ile}) {.| |00001c50| 09 09 09 70 72 69 6e 74 | 20 4f 55 54 20 22 54 68 |...print| OUT "Th| |00001c60| 65 72 65 27 73 20 6e 6f | 20 63 6f 64 65 20 68 65 |ere's no| code he| |00001c70| 72 65 20 61 6e 79 74 68 | 69 6e 67 20 6d 61 74 63 |re anyth|ing matc| |00001c80| 68 69 6e 67 20 24 66 69 | 6c 65 2e 5c 6e 22 3b 0d |hing $fi|le.\n";.| |00001c90| 09 09 09 6e 65 78 74 20 | 43 4d 44 3b 0d 09 09 20 |...next |CMD;... | |00001ca0| 20 20 20 7d 0d 09 09 20 | 20 20 20 65 6c 73 69 66 | }... | elsif| |00001cb0| 20 28 24 66 69 6c 65 20 | 6e 65 20 24 66 69 6c 65 | ($file |ne $file| |00001cc0| 6e 61 6d 65 29 20 7b 0d | 09 09 09 2a 64 62 6c 69 |name) {.|...*dbli| |00001cd0| 6e 65 20 3d 20 22 5f 3c | 24 66 69 6c 65 22 3b 0d |ne = "_<|$file";.| |00001ce0| 09 09 09 24 6d 61 78 20 | 3d 20 24 23 64 62 6c 69 |...$max |= $#dbli| |00001cf0| 6e 65 3b 0d 09 09 09 24 | 66 69 6c 65 6e 61 6d 65 |ne;....$|filename| |00001d00| 20 3d 20 24 66 69 6c 65 | 3b 0d 09 09 09 24 73 74 | = $file|;....$st| |00001d10| 61 72 74 20 3d 20 31 3b | 0d 09 09 09 24 63 6d 64 |art = 1;|....$cmd| |00001d20| 20 3d 20 22 6c 22 3b 0d | 09 09 20 20 20 20 7d 20 | = "l";.|.. } | |00001d30| 7d 3b 0d 09 09 24 63 6d | 64 20 3d 7e 20 2f 5e 6c |};...$cm|d =~ /^l| |00001d40| 5c 62 5c 73 2a 28 5b 27 | 41 2d 5a 61 2d 7a 5f 5d |\b\s*(['|A-Za-z_]| |00001d50| 5b 27 5c 77 5d 2a 29 2f | 20 26 26 20 64 6f 20 7b |['\w]*)/| && do {| |00001d60| 0d 09 09 20 20 20 20 24 | 73 75 62 6e 61 6d 65 20 |... $|subname | |00001d70| 3d 20 24 31 3b 0d 09 09 | 20 20 20 20 24 73 75 62 |= $1;...| $sub| |00001d80| 6e 61 6d 65 20 3d 20 22 | 6d 61 69 6e 27 22 20 2e |name = "|main'" .| |00001d90| 20 24 73 75 62 6e 61 6d | 65 20 75 6e 6c 65 73 73 | $subnam|e unless| |00001da0| 20 24 73 75 62 6e 61 6d | 65 20 3d 7e 20 2f 27 2f | $subnam|e =~ /'/| |00001db0| 3b 0d 09 09 20 20 20 20 | 24 73 75 62 6e 61 6d 65 |;... |$subname| |00001dc0| 20 3d 20 22 6d 61 69 6e | 22 20 2e 20 24 73 75 62 | = "main|" . $sub| |00001dd0| 6e 61 6d 65 20 69 66 20 | 73 75 62 73 74 72 28 24 |name if |substr($| |00001de0| 73 75 62 6e 61 6d 65 2c | 30 2c 31 29 20 65 71 20 |subname,|0,1) eq | |00001df0| 22 27 22 3b 0d 09 09 20 | 20 20 20 28 24 66 69 6c |"'";... | ($fil| |00001e00| 65 2c 24 73 75 62 72 61 | 6e 67 65 29 20 3d 20 73 |e,$subra|nge) = s| |00001e10| 70 6c 69 74 28 2f 3a 2f | 2c 24 73 75 62 7b 24 73 |plit(/:/|,$sub{$s| |00001e20| 75 62 6e 61 6d 65 7d 29 | 3b 0d 09 09 20 20 20 20 |ubname})|;... | |00001e30| 69 66 20 28 24 66 69 6c | 65 20 6e 65 20 24 66 69 |if ($fil|e ne $fi| |00001e40| 6c 65 6e 61 6d 65 29 20 | 7b 0d 09 09 09 2a 64 62 |lename) |{....*db| |00001e50| 6c 69 6e 65 20 3d 20 22 | 5f 3c 24 66 69 6c 65 22 |line = "|_<$file"| |00001e60| 3b 0d 09 09 09 24 6d 61 | 78 20 3d 20 24 23 64 62 |;....$ma|x = $#db| |00001e70| 6c 69 6e 65 3b 0d 09 09 | 09 24 66 69 6c 65 6e 61 |line;...|.$filena| |00001e80| 6d 65 20 3d 20 24 66 69 | 6c 65 3b 0d 09 09 20 20 |me = $fi|le;... | |00001e90| 20 20 7d 0d 09 09 20 20 | 20 20 69 66 20 28 24 73 | }... | if ($s| |00001ea0| 75 62 72 61 6e 67 65 29 | 20 7b 0d 09 09 09 69 66 |ubrange)| {....if| |00001eb0| 20 28 65 76 61 6c 28 24 | 73 75 62 72 61 6e 67 65 | (eval($|subrange| |00001ec0| 29 20 3c 20 2d 24 77 69 | 6e 64 6f 77 29 20 7b 0d |) < -$wi|ndow) {.| |00001ed0| 09 09 09 20 20 20 20 24 | 73 75 62 72 61 6e 67 65 |... $|subrange| |00001ee0| 20 3d 7e 20 73 2f 2d 2e | 2a 2f 2b 2f 3b 0d 09 09 | =~ s/-.|*/+/;...| |00001ef0| 09 7d 0d 09 09 09 24 63 | 6d 64 20 3d 20 22 6c 20 |.}....$c|md = "l | |00001f00| 24 73 75 62 72 61 6e 67 | 65 22 3b 0d 09 09 20 20 |$subrang|e";... | |00001f10| 20 20 7d 20 65 6c 73 65 | 20 7b 0d 09 09 09 70 72 | } else| {....pr| |00001f20| 69 6e 74 20 4f 55 54 20 | 22 53 75 62 72 6f 75 74 |int OUT |"Subrout| |00001f30| 69 6e 65 20 24 31 20 6e | 6f 74 20 66 6f 75 6e 64 |ine $1 n|ot found| |00001f40| 2e 5c 6e 22 3b 0d 09 09 | 09 6e 65 78 74 20 43 4d |.\n";...|.next CM| |00001f50| 44 3b 0d 09 09 20 20 20 | 20 7d 20 7d 3b 0d 09 09 |D;... | } };...| |00001f60| 24 63 6d 64 20 3d 7e 20 | 2f 5e 77 5c 62 5c 73 2a |$cmd =~ |/^w\b\s*| |00001f70| 28 5c 64 2a 29 24 2f 20 | 26 26 20 64 6f 20 7b 0d |(\d*)$/ |&& do {.| |00001f80| 09 09 20 20 20 20 24 69 | 6e 63 72 20 3d 20 24 77 |.. $i|ncr = $w| |00001f90| 69 6e 64 6f 77 20 2d 20 | 31 3b 0d 09 09 20 20 20 |indow - |1;... | |00001fa0| 20 24 73 74 61 72 74 20 | 3d 20 24 31 20 69 66 20 | $start |= $1 if | |00001fb0| 24 31 3b 0d 09 09 20 20 | 20 20 24 73 74 61 72 74 |$1;... | $start| |00001fc0| 20 2d 3d 20 24 70 72 65 | 76 69 65 77 3b 0d 09 09 | -= $pre|view;...| |00001fd0| 20 20 20 20 24 63 6d 64 | 20 3d 20 27 6c 20 27 20 | $cmd| = 'l ' | |00001fe0| 2e 20 24 73 74 61 72 74 | 20 2e 20 27 2d 27 20 2e |. $start| . '-' .| |00001ff0| 20 28 24 73 74 61 72 74 | 20 2b 20 24 69 6e 63 72 | ($start| + $incr| |00002000| 29 3b 20 7d 3b 0d 09 09 | 24 63 6d 64 20 3d 7e 20 |); };...|$cmd =~ | |00002010| 2f 5e 2d 24 2f 20 26 26 | 20 64 6f 20 7b 0d 09 09 |/^-$/ &&| do {...| |00002020| 20 20 20 20 24 69 6e 63 | 72 20 3d 20 24 77 69 6e | $inc|r = $win| |00002030| 64 6f 77 20 2d 20 31 3b | 0d 09 09 20 20 20 20 24 |dow - 1;|... $| |00002040| 63 6d 64 20 3d 20 27 6c | 20 27 20 2e 20 28 24 73 |cmd = 'l| ' . ($s| |00002050| 74 61 72 74 2d 24 77 69 | 6e 64 6f 77 2a 32 29 20 |tart-$wi|ndow*2) | |00002060| 2e 20 27 2b 27 3b 20 7d | 3b 0d 09 09 24 63 6d 64 |. '+'; }|;...$cmd| |00002070| 20 3d 7e 20 2f 5e 6c 24 | 2f 20 26 26 20 64 6f 20 | =~ /^l$|/ && do | |00002080| 7b 0d 09 09 20 20 20 20 | 24 69 6e 63 72 20 3d 20 |{... |$incr = | |00002090| 24 77 69 6e 64 6f 77 20 | 2d 20 31 3b 0d 09 09 20 |$window |- 1;... | |000020a0| 20 20 20 24 63 6d 64 20 | 3d 20 27 6c 20 27 20 2e | $cmd |= 'l ' .| |000020b0| 20 24 73 74 61 72 74 20 | 2e 20 27 2d 27 20 2e 20 | $start |. '-' . | |000020c0| 28 24 73 74 61 72 74 20 | 2b 20 24 69 6e 63 72 29 |($start |+ $incr)| |000020d0| 3b 20 7d 3b 0d 09 09 24 | 63 6d 64 20 3d 7e 20 2f |; };...$|cmd =~ /| |000020e0| 5e 6c 5c 62 5c 73 2a 28 | 5c 64 2a 29 5c 2b 28 5c |^l\b\s*(|\d*)\+(\| |000020f0| 64 2a 29 24 2f 20 26 26 | 20 64 6f 20 7b 0d 09 09 |d*)$/ &&| do {...| |00002100| 20 20 20 20 24 73 74 61 | 72 74 20 3d 20 24 31 20 | $sta|rt = $1 | |00002110| 69 66 20 24 31 3b 0d 09 | 09 20 20 20 20 24 69 6e |if $1;..|. $in| |00002120| 63 72 20 3d 20 24 32 3b | 0d 09 09 20 20 20 20 24 |cr = $2;|... $| |00002130| 69 6e 63 72 20 3d 20 24 | 77 69 6e 64 6f 77 20 2d |incr = $|window -| |00002140| 20 31 20 75 6e 6c 65 73 | 73 20 24 69 6e 63 72 3b | 1 unles|s $incr;| |00002150| 0d 09 09 20 20 20 20 24 | 63 6d 64 20 3d 20 27 6c |... $|cmd = 'l| |00002160| 20 27 20 2e 20 24 73 74 | 61 72 74 20 2e 20 27 2d | ' . $st|art . '-| |00002170| 27 20 2e 20 28 24 73 74 | 61 72 74 20 2b 20 24 69 |' . ($st|art + $i| |00002180| 6e 63 72 29 3b 20 7d 3b | 0d 09 09 24 63 6d 64 20 |ncr); };|...$cmd | |00002190| 3d 7e 20 2f 5e 6c 5c 62 | 5c 73 2a 28 28 5b 5c 64 |=~ /^l\b|\s*(([\d| |000021a0| 5c 24 5c 2e 5d 2b 29 28 | 5b 2d 2c 5d 28 5b 5c 64 |\$\.]+)(|[-,]([\d| |000021b0| 5c 24 5c 2e 5d 2b 29 29 | 3f 29 3f 2f 20 26 26 20 |\$\.]+))|?)?/ && | |000021c0| 64 6f 20 7b 0d 09 09 20 | 20 20 20 24 65 6e 64 20 |do {... | $end | |000021d0| 3d 20 28 21 24 32 29 20 | 3f 20 24 6d 61 78 20 3a |= (!$2) |? $max :| |000021e0| 20 28 24 34 20 3f 20 24 | 34 20 3a 20 24 32 29 3b | ($4 ? $|4 : $2);| |000021f0| 0d 09 09 20 20 20 20 24 | 65 6e 64 20 3d 20 24 6d |... $|end = $m| |00002200| 61 78 20 69 66 20 24 65 | 6e 64 20 3e 20 24 6d 61 |ax if $e|nd > $ma| |00002210| 78 3b 0d 09 09 20 20 20 | 20 24 69 20 3d 20 24 32 |x;... | $i = $2| |00002220| 3b 0d 09 09 20 20 20 20 | 24 69 20 3d 20 24 6c 69 |;... |$i = $li| |00002230| 6e 65 20 69 66 20 24 69 | 20 65 71 20 27 2e 27 3b |ne if $i| eq '.';| |00002240| 0d 09 09 20 20 20 20 24 | 69 20 3d 20 31 20 69 66 |... $|i = 1 if| |00002250| 20 24 69 20 3c 20 31 3b | 0d 09 09 20 20 20 20 69 | $i < 1;|... i| |00002260| 66 20 28 24 65 6d 61 63 | 73 29 20 7b 0d 09 09 09 |f ($emac|s) {....| |00002270| 70 72 69 6e 74 20 4f 55 | 54 20 22 5c 30 33 32 5c |print OU|T "\032\| |00002280| 30 33 32 24 66 69 6c 65 | 6e 61 6d 65 3a 24 69 3a |032$file|name:$i:| |00002290| 30 5c 6e 22 3b 0d 09 09 | 09 24 69 20 3d 20 24 65 |0\n";...|.$i = $e| |000022a0| 6e 64 3b 0d 09 09 20 20 | 20 20 7d 20 65 6c 73 65 |nd;... | } else| |000022b0| 20 7b 0d 09 09 09 66 6f | 72 20 28 3b 20 24 69 20 | {....fo|r (; $i | |000022c0| 3c 3d 20 24 65 6e 64 3b | 20 24 69 2b 2b 29 20 7b |<= $end;| $i++) {| |000022d0| 0d 09 09 09 20 20 20 20 | 70 72 69 6e 74 20 4f 55 |.... |print OU| |000022e0| 54 20 22 24 69 3a 5c 74 | 22 2c 20 24 64 62 6c 69 |T "$i:\t|", $dbli| |000022f0| 6e 65 5b 24 69 5d 3b 0d | 09 09 09 20 20 20 20 6c |ne[$i];.|... l| |00002300| 61 73 74 20 69 66 20 24 | 73 69 67 6e 61 6c 3b 0d |ast if $|signal;.| |00002310| 09 09 09 7d 0d 09 09 20 | 20 20 20 7d 0d 09 09 20 |...}... | }... | |00002320| 20 20 20 24 73 74 61 72 | 74 20 3d 20 24 69 3b 09 | $star|t = $i;.| |00002330| 23 20 72 65 6d 65 6d 62 | 65 72 20 69 6e 20 63 61 |# rememb|er in ca| |00002340| 73 65 20 74 68 65 79 20 | 77 61 6e 74 20 6d 6f 72 |se they |want mor| |00002350| 65 0d 09 09 20 20 20 20 | 24 73 74 61 72 74 20 3d |e... |$start =| |00002360| 20 24 6d 61 78 20 69 66 | 20 24 73 74 61 72 74 20 | $max if| $start | |00002370| 3e 20 24 6d 61 78 3b 0d | 09 09 20 20 20 20 6e 65 |> $max;.|.. ne| |00002380| 78 74 20 43 4d 44 3b 20 | 7d 3b 0d 09 09 24 63 6d |xt CMD; |};...$cm| |00002390| 64 20 3d 7e 20 2f 5e 44 | 24 2f 20 26 26 20 64 6f |d =~ /^D|$/ && do| |000023a0| 20 7b 0d 09 09 20 20 20 | 20 70 72 69 6e 74 20 4f | {... | print O| |000023b0| 55 54 20 22 44 65 6c 65 | 74 69 6e 67 20 61 6c 6c |UT "Dele|ting all| |000023c0| 20 62 72 65 61 6b 70 6f | 69 6e 74 73 2e 2e 2e 5c | breakpo|ints...\| |000023d0| 6e 22 3b 0d 09 09 20 20 | 20 20 66 6f 72 20 28 24 |n";... | for ($| |000023e0| 69 20 3d 20 31 3b 20 24 | 69 20 3c 3d 20 24 6d 61 |i = 1; $|i <= $ma| |000023f0| 78 20 3b 20 24 69 2b 2b | 29 20 7b 0d 09 09 09 69 |x ; $i++|) {....i| |00002400| 66 20 28 64 65 66 69 6e | 65 64 20 24 64 62 6c 69 |f (defin|ed $dbli| |00002410| 6e 65 7b 24 69 7d 29 20 | 7b 0d 09 09 09 20 20 20 |ne{$i}) |{.... | |00002420| 20 24 64 62 6c 69 6e 65 | 7b 24 69 7d 20 3d 7e 20 | $dbline|{$i} =~ | |00002430| 73 2f 5e 5b 5e 5c 30 5d | 2b 2f 2f 3b 0d 09 09 09 |s/^[^\0]|+//;....| |00002440| 20 20 20 20 69 66 20 28 | 24 64 62 6c 69 6e 65 7b | if (|$dbline{| |00002450| 24 69 7d 20 3d 7e 20 73 | 2f 5e 5c 30 3f 24 2f 2f |$i} =~ s|/^\0?$//| |00002460| 29 20 7b 0d 09 09 09 09 | 64 65 6c 65 74 65 20 24 |) {.....|delete $| |00002470| 64 62 6c 69 6e 65 7b 24 | 69 7d 3b 0d 09 09 09 20 |dbline{$|i};.... | |00002480| 20 20 20 7d 0d 09 09 09 | 7d 0d 09 09 20 20 20 20 | }....|}... | |00002490| 7d 0d 09 09 20 20 20 20 | 6e 65 78 74 20 43 4d 44 |}... |next CMD| |000024a0| 3b 20 7d 3b 0d 09 09 24 | 63 6d 64 20 3d 7e 20 2f |; };...$|cmd =~ /| |000024b0| 5e 4c 24 2f 20 26 26 20 | 64 6f 20 7b 0d 09 09 20 |^L$/ && |do {... | |000024c0| 20 20 20 66 6f 72 20 28 | 24 69 20 3d 20 31 3b 20 | for (|$i = 1; | |000024d0| 24 69 20 3c 3d 20 24 6d | 61 78 3b 20 24 69 2b 2b |$i <= $m|ax; $i++| |000024e0| 29 20 7b 0d 09 09 09 69 | 66 20 28 64 65 66 69 6e |) {....i|f (defin| |000024f0| 65 64 20 24 64 62 6c 69 | 6e 65 7b 24 69 7d 29 20 |ed $dbli|ne{$i}) | |00002500| 7b 0d 09 09 09 20 20 20 | 20 70 72 69 6e 74 20 4f |{.... | print O| |00002510| 55 54 20 22 24 69 3a 5c | 74 22 2c 20 24 64 62 6c |UT "$i:\|t", $dbl| |00002520| 69 6e 65 5b 24 69 5d 3b | 0d 09 09 09 20 20 20 20 |ine[$i];|.... | |00002530| 28 24 73 74 6f 70 2c 24 | 61 63 74 69 6f 6e 29 20 |($stop,$|action) | |00002540| 3d 20 73 70 6c 69 74 28 | 2f 5c 30 2f 2c 20 24 64 |= split(|/\0/, $d| |00002550| 62 6c 69 6e 65 7b 24 69 | 7d 29 3b 0d 09 09 09 20 |bline{$i|});.... | |00002560| 20 20 20 70 72 69 6e 74 | 20 4f 55 54 20 22 20 20 | print| OUT " | |00002570| 62 72 65 61 6b 20 69 66 | 20 28 22 2c 20 24 73 74 |break if| (", $st| |00002580| 6f 70 2c 20 22 29 5c 6e | 22 20 0d 09 09 09 09 69 |op, ")\n|" .....i| |00002590| 66 20 24 73 74 6f 70 3b | 0d 09 09 09 20 20 20 20 |f $stop;|.... | |000025a0| 70 72 69 6e 74 20 4f 55 | 54 20 22 20 20 61 63 74 |print OU|T " act| |000025b0| 69 6f 6e 3a 20 20 22 2c | 20 24 61 63 74 69 6f 6e |ion: ",| $action| |000025c0| 2c 20 22 5c 6e 22 20 0d | 09 09 09 09 69 66 20 24 |, "\n" .|....if $| |000025d0| 61 63 74 69 6f 6e 3b 0d | 09 09 09 20 20 20 20 6c |action;.|... l| |000025e0| 61 73 74 20 69 66 20 24 | 73 69 67 6e 61 6c 3b 0d |ast if $|signal;.| |000025f0| 09 09 09 7d 0d 09 09 20 | 20 20 20 7d 0d 09 09 20 |...}... | }... | |00002600| 20 20 20 6e 65 78 74 20 | 43 4d 44 3b 20 7d 3b 0d | next |CMD; };.| |00002610| 09 09 24 63 6d 64 20 3d | 7e 20 2f 5e 62 5c 62 5c |..$cmd =|~ /^b\b\| |00002620| 73 2a 28 5b 27 41 2d 5a | 61 2d 7a 5f 5d 5b 27 5c |s*(['A-Z|a-z_]['\| |00002630| 77 5d 2a 29 5c 73 2a 28 | 2e 2a 29 2f 20 26 26 20 |w]*)\s*(|.*)/ && | |00002640| 64 6f 20 7b 0d 09 09 20 | 20 20 20 24 73 75 62 6e |do {... | $subn| |00002650| 61 6d 65 20 3d 20 24 31 | 3b 0d 09 09 20 20 20 20 |ame = $1|;... | |00002660| 24 63 6f 6e 64 20 3d 20 | 24 32 20 7c 7c 20 27 31 |$cond = |$2 || '1| |00002670| 27 3b 0d 09 09 20 20 20 | 20 24 73 75 62 6e 61 6d |';... | $subnam| |00002680| 65 20 3d 20 22 24 70 61 | 63 6b 61 67 65 27 22 20 |e = "$pa|ckage'" | |00002690| 2e 20 24 73 75 62 6e 61 | 6d 65 20 75 6e 6c 65 73 |. $subna|me unles| |000026a0| 73 20 24 73 75 62 6e 61 | 6d 65 20 3d 7e 20 2f 27 |s $subna|me =~ /'| |000026b0| 2f 3b 0d 09 09 20 20 20 | 20 24 73 75 62 6e 61 6d |/;... | $subnam| |000026c0| 65 20 3d 20 22 6d 61 69 | 6e 22 20 2e 20 24 73 75 |e = "mai|n" . $su| |000026d0| 62 6e 61 6d 65 20 69 66 | 20 73 75 62 73 74 72 28 |bname if| substr(| |000026e0| 24 73 75 62 6e 61 6d 65 | 2c 30 2c 31 29 20 65 71 |$subname|,0,1) eq| |000026f0| 20 22 27 22 3b 0d 09 09 | 20 20 20 20 28 24 66 69 | "'";...| ($fi| |00002700| 6c 65 6e 61 6d 65 2c 24 | 69 29 20 3d 20 73 70 6c |lename,$|i) = spl| |00002710| 69 74 28 2f 3a 2f 2c 20 | 24 73 75 62 7b 24 73 75 |it(/:/, |$sub{$su| |00002720| 62 6e 61 6d 65 7d 29 3b | 0d 09 09 20 20 20 20 24 |bname});|... $| |00002730| 69 20 2b 3d 20 30 3b 0d | 09 09 20 20 20 20 69 66 |i += 0;.|.. if| |00002740| 20 28 24 69 29 20 7b 0d | 09 09 09 2a 64 62 6c 69 | ($i) {.|...*dbli| |00002750| 6e 65 20 3d 20 22 5f 3c | 24 66 69 6c 65 6e 61 6d |ne = "_<|$filenam| |00002760| 65 22 3b 0d 09 09 09 2b | 2b 24 69 20 77 68 69 6c |e";....+|+$i whil| |00002770| 65 20 24 64 62 6c 69 6e | 65 5b 24 69 5d 20 3d 3d |e $dblin|e[$i] ==| |00002780| 20 30 20 26 26 20 24 69 | 20 3c 20 24 23 64 62 6c | 0 && $i| < $#dbl| |00002790| 69 6e 65 3b 0d 09 09 09 | 24 64 62 6c 69 6e 65 7b |ine;....|$dbline{| |000027a0| 24 69 7d 20 3d 7e 20 73 | 2f 5e 5b 5e 5c 30 5d 2a |$i} =~ s|/^[^\0]*| |000027b0| 2f 24 63 6f 6e 64 2f 3b | 0d 09 09 20 20 20 20 7d |/$cond/;|... }| |000027c0| 20 65 6c 73 65 20 7b 0d | 09 09 09 70 72 69 6e 74 | else {.|...print| |000027d0| 20 4f 55 54 20 22 53 75 | 62 72 6f 75 74 69 6e 65 | OUT "Su|broutine| |000027e0| 20 24 73 75 62 6e 61 6d | 65 20 6e 6f 74 20 66 6f | $subnam|e not fo| |000027f0| 75 6e 64 2e 5c 6e 22 3b | 0d 09 09 20 20 20 20 7d |und.\n";|... }| |00002800| 0d 09 09 20 20 20 20 6e | 65 78 74 20 43 4d 44 3b |... n|ext CMD;| |00002810| 20 7d 3b 0d 09 09 24 63 | 6d 64 20 3d 7e 20 2f 5e | };...$c|md =~ /^| |00002820| 62 5c 62 5c 73 2a 28 5c | 64 2a 29 5c 73 2a 28 2e |b\b\s*(\|d*)\s*(.| |00002830| 2a 29 2f 20 26 26 20 64 | 6f 20 7b 0d 09 09 20 20 |*)/ && d|o {... | |00002840| 20 20 24 69 20 3d 20 28 | 24 31 3f 24 31 3a 24 6c | $i = (|$1?$1:$l| |00002850| 69 6e 65 29 3b 0d 09 09 | 20 20 20 20 24 63 6f 6e |ine);...| $con| |00002860| 64 20 3d 20 24 32 20 7c | 7c 20 27 31 27 3b 0d 09 |d = $2 ||| '1';..| |00002870| 09 20 20 20 20 69 66 20 | 28 24 64 62 6c 69 6e 65 |. if |($dbline| |00002880| 5b 24 69 5d 20 3d 3d 20 | 30 29 20 7b 0d 09 09 09 |[$i] == |0) {....| |00002890| 70 72 69 6e 74 20 4f 55 | 54 20 22 4c 69 6e 65 20 |print OU|T "Line | |000028a0| 24 69 20 6e 6f 74 20 62 | 72 65 61 6b 61 62 6c 65 |$i not b|reakable| |000028b0| 2e 5c 6e 22 3b 0d 09 09 | 20 20 20 20 7d 20 65 6c |.\n";...| } el| |000028c0| 73 65 20 7b 0d 09 09 09 | 24 64 62 6c 69 6e 65 7b |se {....|$dbline{| |000028d0| 24 69 7d 20 3d 7e 20 73 | 2f 5e 5b 5e 5c 30 5d 2a |$i} =~ s|/^[^\0]*| |000028e0| 2f 24 63 6f 6e 64 2f 3b | 0d 09 09 20 20 20 20 7d |/$cond/;|... }| |000028f0| 0d 09 09 20 20 20 20 6e | 65 78 74 20 43 4d 44 3b |... n|ext CMD;| |00002900| 20 7d 3b 0d 09 09 24 63 | 6d 64 20 3d 7e 20 2f 5e | };...$c|md =~ /^| |00002910| 64 5c 62 5c 73 2a 28 5c | 64 2b 29 3f 2f 20 26 26 |d\b\s*(\|d+)?/ &&| |00002920| 20 64 6f 20 7b 0d 09 09 | 20 20 20 20 24 69 20 3d | do {...| $i =| |00002930| 20 28 24 31 3f 24 31 3a | 24 6c 69 6e 65 29 3b 0d | ($1?$1:|$line);.| |00002940| 09 09 20 20 20 20 24 64 | 62 6c 69 6e 65 7b 24 69 |.. $d|bline{$i| |00002950| 7d 20 3d 7e 20 73 2f 5e | 5b 5e 5c 30 5d 2a 2f 2f |} =~ s/^|[^\0]*//| |00002960| 3b 0d 09 09 20 20 20 20 | 64 65 6c 65 74 65 20 24 |;... |delete $| |00002970| 64 62 6c 69 6e 65 7b 24 | 69 7d 20 69 66 20 24 64 |dbline{$|i} if $d| |00002980| 62 6c 69 6e 65 7b 24 69 | 7d 20 65 71 20 27 27 3b |bline{$i|} eq '';| |00002990| 0d 09 09 20 20 20 20 6e | 65 78 74 20 43 4d 44 3b |... n|ext CMD;| |000029a0| 20 7d 3b 0d 09 09 24 63 | 6d 64 20 3d 7e 20 2f 5e | };...$c|md =~ /^| |000029b0| 41 24 2f 20 26 26 20 64 | 6f 20 7b 0d 09 09 20 20 |A$/ && d|o {... | |000029c0| 20 20 66 6f 72 20 28 24 | 69 20 3d 20 31 3b 20 24 | for ($|i = 1; $| |000029d0| 69 20 3c 3d 20 24 6d 61 | 78 20 3b 20 24 69 2b 2b |i <= $ma|x ; $i++| |000029e0| 29 20 7b 0d 09 09 09 69 | 66 20 28 64 65 66 69 6e |) {....i|f (defin| |000029f0| 65 64 20 24 64 62 6c 69 | 6e 65 7b 24 69 7d 29 20 |ed $dbli|ne{$i}) | |00002a00| 7b 0d 09 09 09 20 20 20 | 20 24 64 62 6c 69 6e 65 |{.... | $dbline| |00002a10| 7b 24 69 7d 20 3d 7e 20 | 73 2f 5c 30 5b 5e 5c 30 |{$i} =~ |s/\0[^\0| |00002a20| 5d 2a 2f 2f 3b 0d 09 09 | 09 20 20 20 20 64 65 6c |]*//;...|. del| |00002a30| 65 74 65 20 24 64 62 6c | 69 6e 65 7b 24 69 7d 20 |ete $dbl|ine{$i} | |00002a40| 69 66 20 24 64 62 6c 69 | 6e 65 7b 24 69 7d 20 65 |if $dbli|ne{$i} e| |00002a50| 71 20 27 27 3b 0d 09 09 | 09 7d 0d 09 09 20 20 20 |q '';...|.}... | |00002a60| 20 7d 0d 09 09 20 20 20 | 20 6e 65 78 74 20 43 4d | }... | next CM| |00002a70| 44 3b 20 7d 3b 0d 09 09 | 24 63 6d 64 20 3d 7e 20 |D; };...|$cmd =~ | |00002a80| 2f 5e 3c 5c 73 2a 28 2e | 2a 29 2f 20 26 26 20 64 |/^<\s*(.|*)/ && d| |00002a90| 6f 20 7b 0d 09 09 20 20 | 20 20 24 70 72 65 20 3d |o {... | $pre =| |00002aa0| 20 64 6f 20 61 63 74 69 | 6f 6e 28 24 31 29 3b 0d | do acti|on($1);.| |00002ab0| 09 09 20 20 20 20 6e 65 | 78 74 20 43 4d 44 3b 20 |.. ne|xt CMD; | |00002ac0| 7d 3b 0d 09 09 24 63 6d | 64 20 3d 7e 20 2f 5e 3e |};...$cm|d =~ /^>| |00002ad0| 5c 73 2a 28 2e 2a 29 2f | 20 26 26 20 64 6f 20 7b |\s*(.*)/| && do {| |00002ae0| 0d 09 09 20 20 20 20 24 | 70 6f 73 74 20 3d 20 64 |... $|post = d| |00002af0| 6f 20 61 63 74 69 6f 6e | 28 24 31 29 3b 0d 09 09 |o action|($1);...| |00002b00| 20 20 20 20 6e 65 78 74 | 20 43 4d 44 3b 20 7d 3b | next| CMD; };| |00002b10| 0d 09 09 24 63 6d 64 20 | 3d 7e 20 2f 5e 61 5c 62 |...$cmd |=~ /^a\b| |00002b20| 5c 73 2a 28 5c 64 2b 29 | 28 5c 73 2b 28 2e 2a 29 |\s*(\d+)|(\s+(.*)| |00002b30| 29 3f 2f 20 26 26 20 64 | 6f 20 7b 0d 09 09 20 20 |)?/ && d|o {... | |00002b40| 20 20 24 69 20 3d 20 24 | 31 3b 0d 09 09 20 20 20 | $i = $|1;... | |00002b50| 20 69 66 20 28 24 64 62 | 6c 69 6e 65 5b 24 69 5d | if ($db|line[$i]| |00002b60| 20 3d 3d 20 30 29 20 7b | 0d 09 09 09 70 72 69 6e | == 0) {|....prin| |00002b70| 74 20 4f 55 54 20 22 4c | 69 6e 65 20 24 69 20 6d |t OUT "L|ine $i m| |00002b80| 61 79 20 6e 6f 74 20 68 | 61 76 65 20 61 6e 20 61 |ay not h|ave an a| |00002b90| 63 74 69 6f 6e 2e 5c 6e | 22 3b 0d 09 09 20 20 20 |ction.\n|";... | |00002ba0| 20 7d 20 65 6c 73 65 20 | 7b 0d 09 09 09 24 64 62 | } else |{....$db| |00002bb0| 6c 69 6e 65 7b 24 69 7d | 20 3d 7e 20 73 2f 5c 30 |line{$i}| =~ s/\0| |00002bc0| 5b 5e 5c 30 5d 2a 2f 2f | 3b 0d 09 09 09 24 64 62 |[^\0]*//|;....$db| |00002bd0| 6c 69 6e 65 7b 24 69 7d | 20 2e 3d 20 22 5c 30 22 |line{$i}| .= "\0"| |00002be0| 20 2e 20 64 6f 20 61 63 | 74 69 6f 6e 28 24 33 29 | . do ac|tion($3)| |00002bf0| 3b 0d 09 09 20 20 20 20 | 7d 0d 09 09 20 20 20 20 |;... |}... | |00002c00| 6e 65 78 74 20 43 4d 44 | 3b 20 7d 3b 0d 09 09 24 |next CMD|; };...$| |00002c10| 63 6d 64 20 3d 7e 20 2f | 5e 6e 24 2f 20 26 26 20 |cmd =~ /|^n$/ && | |00002c20| 64 6f 20 7b 0d 09 09 20 | 20 20 20 24 73 69 6e 67 |do {... | $sing| |00002c30| 6c 65 20 3d 20 32 3b 0d | 09 09 20 20 20 20 24 6c |le = 2;.|.. $l| |00002c40| 61 73 74 73 74 65 70 20 | 3d 20 24 63 6d 64 3b 0d |aststep |= $cmd;.| |00002c50| 09 09 20 20 20 20 6c 61 | 73 74 20 43 4d 44 3b 20 |.. la|st CMD; | |00002c60| 7d 3b 0d 09 09 24 63 6d | 64 20 3d 7e 20 2f 5e 73 |};...$cm|d =~ /^s| |00002c70| 24 2f 20 26 26 20 64 6f | 20 7b 0d 09 09 20 20 20 |$/ && do| {... | |00002c80| 20 24 73 69 6e 67 6c 65 | 20 3d 20 31 3b 0d 09 09 | $single| = 1;...| |00002c90| 20 20 20 20 24 6c 61 73 | 74 73 74 65 70 20 3d 20 | $las|tstep = | |00002ca0| 24 63 6d 64 3b 0d 09 09 | 20 20 20 20 6c 61 73 74 |$cmd;...| last| |00002cb0| 20 43 4d 44 3b 20 7d 3b | 0d 09 09 24 63 6d 64 20 | CMD; };|...$cmd | |00002cc0| 3d 7e 20 2f 5e 63 5c 62 | 5c 73 2a 28 5c 64 2a 29 |=~ /^c\b|\s*(\d*)| |00002cd0| 5c 73 2a 24 2f 20 26 26 | 20 64 6f 20 7b 0d 09 09 |\s*$/ &&| do {...| |00002ce0| 20 20 20 20 24 69 20 3d | 20 24 31 3b 0d 09 09 20 | $i =| $1;... | |00002cf0| 20 20 20 69 66 20 28 24 | 69 29 20 7b 0d 09 09 09 | if ($|i) {....| |00002d00| 69 66 20 28 24 64 62 6c | 69 6e 65 5b 24 69 5d 20 |if ($dbl|ine[$i] | |00002d10| 3d 3d 20 30 29 20 7b 0d | 09 09 09 20 20 20 20 70 |== 0) {.|... p| |00002d20| 72 69 6e 74 20 4f 55 54 | 20 22 4c 69 6e 65 20 24 |rint OUT| "Line $| |00002d30| 69 20 6e 6f 74 20 62 72 | 65 61 6b 61 62 6c 65 2e |i not br|eakable.| |00002d40| 5c 6e 22 3b 0d 09 09 09 | 20 20 20 20 6e 65 78 74 |\n";....| next| |00002d50| 20 43 4d 44 3b 0d 09 09 | 09 7d 0d 09 09 09 24 64 | CMD;...|.}....$d| |00002d60| 62 6c 69 6e 65 7b 24 69 | 7d 20 3d 7e 20 73 2f 28 |bline{$i|} =~ s/(| |00002d70| 5c 30 7c 24 29 2f 3b 39 | 24 31 2f 3b 09 23 20 61 |\0|$)/;9|$1/;.# a| |00002d80| 64 64 20 6f 6e 65 2d 74 | 69 6d 65 2d 6f 6e 6c 79 |dd one-t|ime-only| |00002d90| 20 62 2e 70 2e 0d 09 09 | 20 20 20 20 7d 0d 09 09 | b.p....| }...| |00002da0| 20 20 20 20 66 6f 72 20 | 28 24 69 3d 30 3b 20 24 | for |($i=0; $| |00002db0| 69 20 3c 3d 20 24 23 73 | 74 61 63 6b 3b 20 29 20 |i <= $#s|tack; ) | |00002dc0| 7b 0d 09 09 09 24 73 74 | 61 63 6b 5b 24 69 2b 2b |{....$st|ack[$i++| |00002dd0| 5d 20 26 3d 20 7e 31 3b | 0d 09 09 20 20 20 20 7d |] &= ~1;|... }| |00002de0| 0d 09 09 20 20 20 20 6c | 61 73 74 20 43 4d 44 3b |... l|ast CMD;| |00002df0| 20 7d 3b 0d 09 09 24 63 | 6d 64 20 3d 7e 20 2f 5e | };...$c|md =~ /^| |00002e00| 72 24 2f 20 26 26 20 64 | 6f 20 7b 0d 09 09 20 20 |r$/ && d|o {... | |00002e10| 20 20 24 73 74 61 63 6b | 5b 24 23 73 74 61 63 6b | $stack|[$#stack| |00002e20| 5d 20 7c 3d 20 32 3b 0d | 09 09 20 20 20 20 6c 61 |] |= 2;.|.. la| |00002e30| 73 74 20 43 4d 44 3b 20 | 7d 3b 0d 09 09 24 63 6d |st CMD; |};...$cm| |00002e40| 64 20 3d 7e 20 2f 5e 54 | 24 2f 20 26 26 20 64 6f |d =~ /^T|$/ && do| |00002e50| 20 7b 0d 09 09 20 20 20 | 20 6c 6f 63 61 6c 28 24 | {... | local($| |00002e60| 70 2c 24 66 2c 24 6c 2c | 24 73 2c 24 68 2c 24 61 |p,$f,$l,|$s,$h,$a| |00002e70| 2c 40 61 2c 40 73 75 62 | 29 3b 0d 09 09 20 20 20 |,@a,@sub|);... | |00002e80| 20 66 6f 72 20 28 24 69 | 20 3d 20 31 3b 20 28 24 | for ($i| = 1; ($| |00002e90| 70 2c 24 66 2c 24 6c 2c | 24 73 2c 24 68 2c 24 77 |p,$f,$l,|$s,$h,$w| |00002ea0| 29 20 3d 20 63 61 6c 6c | 65 72 28 24 69 29 3b 20 |) = call|er($i); | |00002eb0| 24 69 2b 2b 29 20 7b 0d | 09 09 09 40 61 20 3d 20 |$i++) {.|...@a = | |00002ec0| 40 61 72 67 73 3b 0d 09 | 09 09 66 6f 72 20 28 40 |@args;..|..for (@| |00002ed0| 61 29 20 7b 0d 09 09 09 | 20 20 20 20 69 66 20 28 |a) {....| if (| |00002ee0| 2f 5e 53 74 42 5c 30 30 | 30 2f 20 26 26 20 6c 65 |/^StB\00|0/ && le| |00002ef0| 6e 67 74 68 28 24 5f 29 | 20 3d 3d 20 6c 65 6e 67 |ngth($_)| == leng| |00002f00| 74 68 28 24 5f 6d 61 69 | 6e 7b 27 5f 6d 61 69 6e |th($_mai|n{'_main| |00002f10| 27 7d 29 29 20 7b 0d 09 | 09 09 09 24 5f 20 3d 20 |'})) {..|...$_ = | |00002f20| 73 70 72 69 6e 74 66 28 | 22 25 73 22 2c 24 5f 29 |sprintf(|"%s",$_)| |00002f30| 3b 0d 09 09 09 20 20 20 | 20 7d 0d 09 09 09 20 20 |;.... | }.... | |00002f40| 20 20 65 6c 73 65 20 7b | 0d 09 09 09 09 73 2f 27 | else {|.....s/'| |00002f50| 2f 5c 5c 27 2f 67 3b 0d | 09 09 09 09 73 2f 28 5b |/\\'/g;.|....s/([| |00002f60| 5e 5c 30 5d 2a 29 2f 27 | 24 31 27 2f 20 75 6e 6c |^\0]*)/'|$1'/ unl| |00002f70| 65 73 73 20 2f 5e 2d 3f | 5b 5c 64 2e 5d 2b 24 2f |ess /^-?|[\d.]+$/| |00002f80| 3b 0d 09 09 09 09 73 2f | 28 5b 5c 32 30 30 2d 5c |;.....s/|([\200-\| |00002f90| 33 37 37 5d 29 2f 73 70 | 72 69 6e 74 66 28 22 4d |377])/sp|rintf("M| |00002fa0| 2d 25 63 22 2c 6f 72 64 | 28 24 31 29 26 30 31 37 |-%c",ord|($1)&017| |00002fb0| 37 29 2f 65 67 3b 0d 09 | 09 09 09 73 2f 28 5b 5c |7)/eg;..|...s/([\| |00002fc0| 30 2d 5c 33 37 5c 31 37 | 37 5d 29 2f 73 70 72 69 |0-\37\17|7])/spri| |00002fd0| 6e 74 66 28 22 5e 25 63 | 22 2c 6f 72 64 28 24 31 |ntf("^%c|",ord($1| |00002fe0| 29 5e 36 34 29 2f 65 67 | 3b 0d 09 09 09 20 20 20 |)^64)/eg|;.... | |00002ff0| 20 7d 0d 09 09 09 7d 0d | 09 09 09 24 77 20 3d 20 | }....}.|...$w = | |00003000| 24 77 20 3f 20 27 40 20 | 3d 20 27 20 3a 20 27 24 |$w ? '@ |= ' : '$| |00003010| 20 3d 20 27 3b 0d 09 09 | 09 24 61 20 3d 20 24 68 | = ';...|.$a = $h| |00003020| 20 3f 20 27 28 27 20 2e | 20 6a 6f 69 6e 28 27 2c | ? '(' .| join(',| |00003030| 20 27 2c 20 40 61 29 20 | 2e 20 27 29 27 20 3a 20 | ', @a) |. ')' : | |00003040| 27 27 3b 0d 09 09 09 70 | 75 73 68 28 40 73 75 62 |'';....p|ush(@sub| |00003050| 2c 20 22 24 77 26 24 73 | 24 61 20 66 72 6f 6d 20 |, "$w&$s|$a from | |00003060| 66 69 6c 65 20 24 66 20 | 6c 69 6e 65 20 24 6c 5c |file $f |line $l\| |00003070| 6e 22 29 3b 0d 09 09 09 | 6c 61 73 74 20 69 66 20 |n");....|last if | |00003080| 24 73 69 67 6e 61 6c 3b | 0d 09 09 20 20 20 20 7d |$signal;|... }| |00003090| 0d 09 09 20 20 20 20 66 | 6f 72 20 28 24 69 3d 30 |... f|or ($i=0| |000030a0| 3b 20 24 69 20 3c 3d 20 | 24 23 73 75 62 3b 20 24 |; $i <= |$#sub; $| |000030b0| 69 2b 2b 29 20 7b 0d 09 | 09 09 6c 61 73 74 20 69 |i++) {..|..last i| |000030c0| 66 20 24 73 69 67 6e 61 | 6c 3b 0d 09 09 09 70 72 |f $signa|l;....pr| |000030d0| 69 6e 74 20 4f 55 54 20 | 24 73 75 62 5b 24 69 5d |int OUT |$sub[$i]| |000030e0| 3b 0d 09 09 20 20 20 20 | 7d 0d 09 09 20 20 20 20 |;... |}... | |000030f0| 6e 65 78 74 20 43 4d 44 | 3b 20 7d 3b 0d 09 09 24 |next CMD|; };...$| |00003100| 63 6d 64 20 3d 7e 20 2f | 5e 5c 2f 28 2e 2a 29 24 |cmd =~ /|^\/(.*)$| |00003110| 2f 20 26 26 20 64 6f 20 | 7b 0d 09 09 20 20 20 20 |/ && do |{... | |00003120| 24 69 6e 70 61 74 20 3d | 20 24 31 3b 0d 09 09 20 |$inpat =| $1;... | |00003130| 20 20 20 24 69 6e 70 61 | 74 20 3d 7e 20 73 3a 28 | $inpa|t =~ s:(| |00003140| 5b 5e 5c 5c 5d 29 2f 24 | 3a 24 31 3a 3b 0d 09 09 |[^\\])/$|:$1:;...| |00003150| 20 20 20 20 69 66 20 28 | 24 69 6e 70 61 74 20 6e | if (|$inpat n| |00003160| 65 20 22 22 29 20 7b 0d | 09 09 09 65 76 61 6c 20 |e "") {.|...eval | |00003170| 27 24 69 6e 70 61 74 20 | 3d 7e 20 6d 27 2e 22 5c |'$inpat |=~ m'."\| |00003180| 6e 24 69 6e 70 61 74 5c | 6e 22 3b 09 0d 09 09 09 |n$inpat\|n";.....| |00003190| 69 66 20 28 24 40 20 6e | 65 20 22 22 29 20 7b 0d |if ($@ n|e "") {.| |000031a0| 09 09 09 20 20 20 20 70 | 72 69 6e 74 20 4f 55 54 |... p|rint OUT| |000031b0| 20 22 24 40 22 3b 0d 09 | 09 09 20 20 20 20 6e 65 | "$@";..|.. ne| |000031c0| 78 74 20 43 4d 44 3b 0d | 09 09 09 7d 0d 09 09 09 |xt CMD;.|...}....| |000031d0| 24 70 61 74 20 3d 20 24 | 69 6e 70 61 74 3b 0d 09 |$pat = $|inpat;..| |000031e0| 09 20 20 20 20 7d 0d 09 | 09 20 20 20 20 24 65 6e |. }..|. $en| |000031f0| 64 20 3d 20 24 73 74 61 | 72 74 3b 0d 09 09 20 20 |d = $sta|rt;... | |00003200| 20 20 65 76 61 6c 20 27 | 0d 09 09 20 20 20 20 66 | eval '|... f| |00003210| 6f 72 20 28 3b 3b 29 20 | 7b 0d 09 09 09 2b 2b 24 |or (;;) |{....++$| |00003220| 73 74 61 72 74 3b 0d 09 | 09 09 24 73 74 61 72 74 |start;..|..$start| |00003230| 20 3d 20 31 20 69 66 20 | 28 24 73 74 61 72 74 20 | = 1 if |($start | |00003240| 3e 20 24 6d 61 78 29 3b | 0d 09 09 09 6c 61 73 74 |> $max);|....last| |00003250| 20 69 66 20 28 24 73 74 | 61 72 74 20 3d 3d 20 24 | if ($st|art == $| |00003260| 65 6e 64 29 3b 0d 09 09 | 09 69 66 20 28 24 64 62 |end);...|.if ($db| |00003270| 6c 69 6e 65 5b 24 73 74 | 61 72 74 5d 20 3d 7e 20 |line[$st|art] =~ | |00003280| 6d 27 2e 22 5c 6e 24 70 | 61 74 5c 6e 22 2e 27 69 |m'."\n$p|at\n".'i| |00003290| 29 20 7b 0d 09 09 09 20 | 20 20 20 69 66 20 28 24 |) {.... | if ($| |000032a0| 65 6d 61 63 73 29 20 7b | 0d 09 09 09 09 70 72 69 |emacs) {|.....pri| |000032b0| 6e 74 20 4f 55 54 20 22 | 5c 30 33 32 5c 30 33 32 |nt OUT "|\032\032| |000032c0| 24 66 69 6c 65 6e 61 6d | 65 3a 24 73 74 61 72 74 |$filenam|e:$start| |000032d0| 3a 30 5c 6e 22 3b 0d 09 | 09 09 20 20 20 20 7d 20 |:0\n";..|.. } | |000032e0| 65 6c 73 65 20 7b 0d 09 | 09 09 09 70 72 69 6e 74 |else {..|...print| |000032f0| 20 4f 55 54 20 22 24 73 | 74 61 72 74 3a 5c 74 22 | OUT "$s|tart:\t"| |00003300| 2c 20 24 64 62 6c 69 6e | 65 5b 24 73 74 61 72 74 |, $dblin|e[$start| |00003310| 5d 2c 20 22 5c 6e 22 3b | 0d 09 09 09 20 20 20 20 |], "\n";|.... | |00003320| 7d 0d 09 09 09 20 20 20 | 20 6c 61 73 74 3b 0d 09 |}.... | last;..| |00003330| 09 09 7d 0d 09 09 20 20 | 20 20 7d 20 27 3b 0d 09 |..}... | } ';..| |00003340| 09 20 20 20 20 70 72 69 | 6e 74 20 4f 55 54 20 22 |. pri|nt OUT "| |00003350| 2f 24 70 61 74 2f 3a 20 | 6e 6f 74 20 66 6f 75 6e |/$pat/: |not foun| |00003360| 64 5c 6e 22 20 69 66 20 | 28 24 73 74 61 72 74 20 |d\n" if |($start | |00003370| 3d 3d 20 24 65 6e 64 29 | 3b 0d 09 09 20 20 20 20 |== $end)|;... | |00003380| 6e 65 78 74 20 43 4d 44 | 3b 20 7d 3b 0d 09 09 24 |next CMD|; };...$| |00003390| 63 6d 64 20 3d 7e 20 2f | 5e 5c 3f 28 2e 2a 29 24 |cmd =~ /|^\?(.*)$| |000033a0| 2f 20 26 26 20 64 6f 20 | 7b 0d 09 09 20 20 20 20 |/ && do |{... | |000033b0| 24 69 6e 70 61 74 20 3d | 20 24 31 3b 0d 09 09 20 |$inpat =| $1;... | |000033c0| 20 20 20 24 69 6e 70 61 | 74 20 3d 7e 20 73 3a 28 | $inpa|t =~ s:(| |000033d0| 5b 5e 5c 5c 5d 29 5c 3f | 24 3a 24 31 3a 3b 0d 09 |[^\\])\?|$:$1:;..| |000033e0| 09 20 20 20 20 69 66 20 | 28 24 69 6e 70 61 74 20 |. if |($inpat | |000033f0| 6e 65 20 22 22 29 20 7b | 0d 09 09 09 65 76 61 6c |ne "") {|....eval| |00003400| 20 27 24 69 6e 70 61 74 | 20 3d 7e 20 6d 27 2e 22 | '$inpat| =~ m'."| |00003410| 5c 6e 24 69 6e 70 61 74 | 5c 6e 22 3b 09 0d 09 09 |\n$inpat|\n";....| |00003420| 09 69 66 20 28 24 40 20 | 6e 65 20 22 22 29 20 7b |.if ($@ |ne "") {| |00003430| 0d 09 09 09 20 20 20 20 | 70 72 69 6e 74 20 4f 55 |.... |print OU| |00003440| 54 20 22 24 40 22 3b 0d | 09 09 09 20 20 20 20 6e |T "$@";.|... n| |00003450| 65 78 74 20 43 4d 44 3b | 0d 09 09 09 7d 0d 09 09 |ext CMD;|....}...| |00003460| 09 24 70 61 74 20 3d 20 | 24 69 6e 70 61 74 3b 0d |.$pat = |$inpat;.| |00003470| 09 09 20 20 20 20 7d 0d | 09 09 20 20 20 20 24 65 |.. }.|.. $e| |00003480| 6e 64 20 3d 20 24 73 74 | 61 72 74 3b 0d 09 09 20 |nd = $st|art;... | |00003490| 20 20 20 65 76 61 6c 20 | 27 0d 09 09 20 20 20 20 | eval |'... | |000034a0| 66 6f 72 20 28 3b 3b 29 | 20 7b 0d 09 09 09 2d 2d |for (;;)| {....--| |000034b0| 24 73 74 61 72 74 3b 0d | 09 09 09 24 73 74 61 72 |$start;.|...$star| |000034c0| 74 20 3d 20 24 6d 61 78 | 20 69 66 20 28 24 73 74 |t = $max| if ($st| |000034d0| 61 72 74 20 3c 3d 20 30 | 29 3b 0d 09 09 09 6c 61 |art <= 0|);....la| |000034e0| 73 74 20 69 66 20 28 24 | 73 74 61 72 74 20 3d 3d |st if ($|start ==| |000034f0| 20 24 65 6e 64 29 3b 0d | 09 09 09 69 66 20 28 24 | $end);.|...if ($| |00003500| 64 62 6c 69 6e 65 5b 24 | 73 74 61 72 74 5d 20 3d |dbline[$|start] =| |00003510| 7e 20 6d 27 2e 22 5c 6e | 24 70 61 74 5c 6e 22 2e |~ m'."\n|$pat\n".| |00003520| 27 69 29 20 7b 0d 09 09 | 09 20 20 20 20 69 66 20 |'i) {...|. if | |00003530| 28 24 65 6d 61 63 73 29 | 20 7b 0d 09 09 09 09 70 |($emacs)| {.....p| |00003540| 72 69 6e 74 20 4f 55 54 | 20 22 5c 30 33 32 5c 30 |rint OUT| "\032\0| |00003550| 33 32 24 66 69 6c 65 6e | 61 6d 65 3a 24 73 74 61 |32$filen|ame:$sta| |00003560| 72 74 3a 30 5c 6e 22 3b | 0d 09 09 09 20 20 20 20 |rt:0\n";|.... | |00003570| 7d 20 65 6c 73 65 20 7b | 0d 09 09 09 09 70 72 69 |} else {|.....pri| |00003580| 6e 74 20 4f 55 54 20 22 | 24 73 74 61 72 74 3a 5c |nt OUT "|$start:\| |00003590| 74 22 2c 20 24 64 62 6c | 69 6e 65 5b 24 73 74 61 |t", $dbl|ine[$sta| |000035a0| 72 74 5d 2c 20 22 5c 6e | 22 3b 0d 09 09 09 20 20 |rt], "\n|";.... | |000035b0| 20 20 7d 0d 09 09 09 20 | 20 20 20 6c 61 73 74 3b | }.... | last;| |000035c0| 0d 09 09 09 7d 0d 09 09 | 20 20 20 20 7d 20 27 3b |....}...| } ';| |000035d0| 0d 09 09 20 20 20 20 70 | 72 69 6e 74 20 4f 55 54 |... p|rint OUT| |000035e0| 20 22 3f 24 70 61 74 3f | 3a 20 6e 6f 74 20 66 6f | "?$pat?|: not fo| |000035f0| 75 6e 64 5c 6e 22 20 69 | 66 20 28 24 73 74 61 72 |und\n" i|f ($star| |00003600| 74 20 3d 3d 20 24 65 6e | 64 29 3b 0d 09 09 20 20 |t == $en|d);... | |00003610| 20 20 6e 65 78 74 20 43 | 4d 44 3b 20 7d 3b 0d 09 | next C|MD; };..| |00003620| 09 24 63 6d 64 20 3d 7e | 20 2f 5e 21 2b 5c 73 2a |.$cmd =~| /^!+\s*| |00003630| 28 2d 29 3f 28 5c 64 2b | 29 3f 24 2f 20 26 26 20 |(-)?(\d+|)?$/ && | |00003640| 64 6f 20 7b 0d 09 09 20 | 20 20 20 70 6f 70 28 40 |do {... | pop(@| |00003650| 68 69 73 74 29 20 69 66 | 20 6c 65 6e 67 74 68 28 |hist) if| length(| |00003660| 24 63 6d 64 29 20 3e 20 | 31 3b 0d 09 09 20 20 20 |$cmd) > |1;... | |00003670| 20 24 69 20 3d 20 28 24 | 31 3f 28 24 23 68 69 73 | $i = ($|1?($#his| |00003680| 74 2d 28 24 32 3f 24 32 | 3a 31 29 29 3a 28 24 32 |t-($2?$2|:1)):($2| |00003690| 3f 24 32 3a 24 23 68 69 | 73 74 29 29 3b 0d 09 09 |?$2:$#hi|st));...| |000036a0| 20 20 20 20 24 63 6d 64 | 20 3d 20 24 68 69 73 74 | $cmd| = $hist| |000036b0| 5b 24 69 5d 20 2e 20 22 | 5c 6e 22 3b 0d 09 09 20 |[$i] . "|\n";... | |000036c0| 20 20 20 70 72 69 6e 74 | 20 4f 55 54 20 24 63 6d | print| OUT $cm| |000036d0| 64 3b 0d 09 09 20 20 20 | 20 72 65 64 6f 20 43 4d |d;... | redo CM| |000036e0| 44 3b 20 7d 3b 0d 09 09 | 24 63 6d 64 20 3d 7e 20 |D; };...|$cmd =~ | |000036f0| 2f 5e 21 28 2e 2b 29 24 | 2f 20 26 26 20 64 6f 20 |/^!(.+)$|/ && do | |00003700| 7b 0d 09 09 20 20 20 20 | 24 70 61 74 20 3d 20 22 |{... |$pat = "| |00003710| 5e 24 31 22 3b 0d 09 09 | 20 20 20 20 70 6f 70 28 |^$1";...| pop(| |00003720| 40 68 69 73 74 29 20 69 | 66 20 6c 65 6e 67 74 68 |@hist) i|f length| |00003730| 28 24 63 6d 64 29 20 3e | 20 31 3b 0d 09 09 20 20 |($cmd) >| 1;... | |00003740| 20 20 66 6f 72 20 28 24 | 69 20 3d 20 24 23 68 69 | for ($|i = $#hi| |00003750| 73 74 3b 20 24 69 3b 20 | 2d 2d 24 69 29 20 7b 0d |st; $i; |--$i) {.| |00003760| 09 09 09 6c 61 73 74 20 | 69 66 20 24 68 69 73 74 |...last |if $hist| |00003770| 5b 24 69 5d 20 3d 7e 20 | 24 70 61 74 3b 0d 09 09 |[$i] =~ |$pat;...| |00003780| 20 20 20 20 7d 0d 09 09 | 20 20 20 20 69 66 20 28 | }...| if (| |00003790| 21 24 69 29 20 7b 0d 09 | 09 09 70 72 69 6e 74 20 |!$i) {..|..print | |000037a0| 4f 55 54 20 22 4e 6f 20 | 73 75 63 68 20 63 6f 6d |OUT "No |such com| |000037b0| 6d 61 6e 64 21 5c 6e 5c | 6e 22 3b 0d 09 09 09 6e |mand!\n\|n";....n| |000037c0| 65 78 74 20 43 4d 44 3b | 0d 09 09 20 20 20 20 7d |ext CMD;|... }| |000037d0| 0d 09 09 20 20 20 20 24 | 63 6d 64 20 3d 20 24 68 |... $|cmd = $h| |000037e0| 69 73 74 5b 24 69 5d 20 | 2e 20 22 5c 6e 22 3b 0d |ist[$i] |. "\n";.| |000037f0| 09 09 20 20 20 20 70 72 | 69 6e 74 20 4f 55 54 20 |.. pr|int OUT | |00003800| 24 63 6d 64 3b 0d 09 09 | 20 20 20 20 72 65 64 6f |$cmd;...| redo| |00003810| 20 43 4d 44 3b 20 7d 3b | 0d 09 09 24 63 6d 64 20 | CMD; };|...$cmd | |00003820| 3d 7e 20 2f 5e 48 5c 62 | 5c 73 2a 28 2d 28 5c 64 |=~ /^H\b|\s*(-(\d| |00003830| 2b 29 29 3f 2f 20 26 26 | 20 64 6f 20 7b 0d 09 09 |+))?/ &&| do {...| |00003840| 20 20 20 20 24 65 6e 64 | 20 3d 20 24 32 3f 28 24 | $end| = $2?($| |00003850| 23 68 69 73 74 2d 24 32 | 29 3a 30 3b 0d 09 09 20 |#hist-$2|):0;... | |00003860| 20 20 20 24 68 69 73 74 | 20 3d 20 30 20 69 66 20 | $hist| = 0 if | |00003870| 24 68 69 73 74 20 3c 20 | 30 3b 0d 09 09 20 20 20 |$hist < |0;... | |00003880| 20 66 6f 72 20 28 24 69 | 3d 24 23 68 69 73 74 3b | for ($i|=$#hist;| |00003890| 20 24 69 3e 24 65 6e 64 | 3b 20 24 69 2d 2d 29 20 | $i>$end|; $i--) | |000038a0| 7b 0d 09 09 09 70 72 69 | 6e 74 20 4f 55 54 20 22 |{....pri|nt OUT "| |000038b0| 24 69 3a 20 22 2c 24 68 | 69 73 74 5b 24 69 5d 2c |$i: ",$h|ist[$i],| |000038c0| 22 5c 6e 22 0d 09 09 09 | 20 20 20 20 75 6e 6c 65 |"\n"....| unle| |000038d0| 73 73 20 24 68 69 73 74 | 5b 24 69 5d 20 3d 7e 20 |ss $hist|[$i] =~ | |000038e0| 2f 5e 2e 3f 24 2f 3b 0d | 09 09 20 20 20 20 7d 3b |/^.?$/;.|.. };| |000038f0| 0d 09 09 20 20 20 20 6e | 65 78 74 20 43 4d 44 3b |... n|ext CMD;| |00003900| 20 7d 3b 0d 09 09 24 63 | 6d 64 20 3d 7e 20 73 2f | };...$c|md =~ s/| |00003910| 5e 70 28 20 2e 2a 29 3f | 24 2f 70 72 69 6e 74 20 |^p( .*)?|$/print | |00003920| 44 42 27 4f 55 54 24 31 | 2f 3b 0d 09 09 24 63 6d |DB'OUT$1|/;...$cm| |00003930| 64 20 3d 7e 20 2f 5e 3d | 2f 20 26 26 20 64 6f 20 |d =~ /^=|/ && do | |00003940| 7b 0d 09 09 20 20 20 20 | 69 66 20 28 6c 6f 63 61 |{... |if (loca| |00003950| 6c 28 24 6b 2c 24 76 29 | 20 3d 20 28 24 63 6d 64 |l($k,$v)| = ($cmd| |00003960| 20 3d 7e 20 2f 5e 3d 5c | 73 2a 28 5c 53 2b 29 5c | =~ /^=\|s*(\S+)\| |00003970| 73 2b 28 2e 2a 29 2f 29 | 29 20 7b 0d 09 09 09 24 |s+(.*)/)|) {....$| |00003980| 61 6c 69 61 73 7b 24 6b | 7d 3d 22 73 7e 24 6b 7e |alias{$k|}="s~$k~| |00003990| 24 76 7e 22 3b 0d 09 09 | 09 70 72 69 6e 74 20 4f |$v~";...|.print O| |000039a0| 55 54 20 22 24 6b 20 3d | 20 24 76 5c 6e 22 3b 0d |UT "$k =| $v\n";.| |000039b0| 09 09 20 20 20 20 7d 20 | 65 6c 73 69 66 20 28 24 |.. } |elsif ($| |000039c0| 63 6d 64 20 3d 7e 20 2f | 5e 3d 5c 73 2a 24 2f 29 |cmd =~ /|^=\s*$/)| |000039d0| 20 7b 0d 09 09 09 66 6f | 72 65 61 63 68 20 24 6b | {....fo|reach $k| |000039e0| 20 28 73 6f 72 74 20 6b | 65 79 73 28 25 61 6c 69 | (sort k|eys(%ali| |000039f0| 61 73 29 29 20 7b 0d 09 | 09 09 20 20 20 20 69 66 |as)) {..|.. if| |00003a00| 20 28 28 24 76 20 3d 20 | 24 61 6c 69 61 73 7b 24 | (($v = |$alias{$| |00003a10| 6b 7d 29 20 3d 7e 20 73 | 7e 5e 73 5c 7e 24 6b 5c |k}) =~ s|~^s\~$k\| |00003a20| 7e 28 2e 2a 29 5c 7e 24 | 7e 24 31 7e 29 20 7b 0d |~(.*)\~$|~$1~) {.| |00003a30| 09 09 09 09 70 72 69 6e | 74 20 4f 55 54 20 22 24 |....prin|t OUT "$| |00003a40| 6b 20 3d 20 24 76 5c 6e | 22 3b 0d 09 09 09 20 20 |k = $v\n|";.... | |00003a50| 20 20 7d 20 65 6c 73 65 | 20 7b 0d 09 09 09 09 70 | } else| {.....p| |00003a60| 72 69 6e 74 20 4f 55 54 | 20 22 24 6b 5c 74 24 61 |rint OUT| "$k\t$a| |00003a70| 6c 69 61 73 7b 24 6b 7d | 5c 6e 22 3b 0d 09 09 09 |lias{$k}|\n";....| |00003a80| 20 20 20 20 7d 3b 0d 09 | 09 09 7d 3b 0d 09 09 20 | };..|..};... | |00003a90| 20 20 20 7d 3b 0d 09 09 | 20 20 20 20 6e 65 78 74 | };...| next| |00003aa0| 20 43 4d 44 3b 20 7d 3b | 0d 09 20 20 20 20 7d 0d | CMD; };|.. }.| |00003ab0| 09 20 20 20 20 24 65 76 | 61 6c 61 72 67 20 3d 20 |. $ev|alarg = | |00003ac0| 24 63 6d 64 3b 20 26 65 | 76 61 6c 3b 0d 09 20 20 |$cmd; &e|val;.. | |00003ad0| 20 20 70 72 69 6e 74 20 | 4f 55 54 20 22 5c 6e 22 | print |OUT "\n"| |00003ae0| 3b 0d 09 7d 0d 09 69 66 | 20 28 24 70 6f 73 74 29 |;..}..if| ($post)| |00003af0| 20 7b 0d 09 20 20 20 20 | 24 65 76 61 6c 61 72 67 | {.. |$evalarg| |00003b00| 20 3d 20 24 70 6f 73 74 | 3b 20 26 65 76 61 6c 3b | = $post|; &eval;| |00003b10| 0d 09 7d 0d 20 20 20 20 | 7d 0d 20 20 20 20 28 24 |..}. |}. ($| |00003b20| 40 2c 20 24 21 2c 20 24 | 5b 2c 20 24 2c 2c 20 24 |@, $!, $|[, $,, $| |00003b30| 2f 2c 20 24 5c 29 20 3d | 20 40 73 61 76 65 64 3b |/, $\) =| @saved;| |00003b40| 0d 7d 0d 0d 73 75 62 20 | 73 61 76 65 20 7b 0d 20 |.}..sub |save {. | |00003b50| 20 20 20 40 73 61 76 65 | 64 20 3d 20 28 24 40 2c | @save|d = ($@,| |00003b60| 20 24 21 2c 20 24 5b 2c | 20 24 2c 2c 20 24 2f 2c | $!, $[,| $,, $/,| |00003b70| 20 24 5c 29 3b 0d 20 20 | 20 20 24 5b 20 3d 20 30 | $\);. | $[ = 0| |00003b80| 3b 20 24 2c 20 3d 20 22 | 22 3b 20 24 2f 20 3d 20 |; $, = "|"; $/ = | |00003b90| 22 5c 6e 22 3b 20 24 5c | 20 3d 20 22 22 3b 0d 7d |"\n"; $\| = "";.}| |00003ba0| 0d 0d 23 20 54 68 65 20 | 66 6f 6c 6c 6f 77 69 6e |..# The |followin| |00003bb0| 67 20 74 61 6b 65 73 20 | 69 74 73 20 61 72 67 75 |g takes |its argu| |00003bc0| 6d 65 6e 74 20 76 69 61 | 20 24 65 76 61 6c 61 72 |ment via| $evalar| |00003bd0| 67 20 74 6f 20 70 72 65 | 73 65 72 76 65 20 63 75 |g to pre|serve cu| |00003be0| 72 72 65 6e 74 20 40 5f | 0d 0d 73 75 62 20 65 76 |rrent @_|..sub ev| |00003bf0| 61 6c 20 7b 0d 20 20 20 | 20 65 76 61 6c 20 22 24 |al {. | eval "$| |00003c00| 75 73 65 72 63 6f 6e 74 | 65 78 74 20 24 65 76 61 |usercont|ext $eva| |00003c10| 6c 61 72 67 3b 20 26 44 | 42 27 73 61 76 65 22 3b |larg; &D|B'save";| |00003c20| 0d 20 20 20 20 70 72 69 | 6e 74 20 4f 55 54 20 24 |. pri|nt OUT $| |00003c30| 40 3b 0d 7d 0d 0d 73 75 | 62 20 61 63 74 69 6f 6e |@;.}..su|b action| |00003c40| 20 7b 0d 20 20 20 20 6c | 6f 63 61 6c 28 24 61 63 | {. l|ocal($ac| |00003c50| 74 69 6f 6e 29 20 3d 20 | 40 5f 3b 0d 20 20 20 20 |tion) = |@_;. | |00003c60| 77 68 69 6c 65 20 28 24 | 61 63 74 69 6f 6e 20 3d |while ($|action =| |00003c70| 7e 20 73 2f 5c 5c 24 2f | 2f 29 20 7b 0d 09 70 72 |~ s/\\$/|/) {..pr| |00003c80| 69 6e 74 20 4f 55 54 20 | 22 2b 20 22 3b 0d 09 24 |int OUT |"+ ";..$| |00003c90| 61 63 74 69 6f 6e 20 2e | 3d 20 26 67 65 74 73 3b |action .|= &gets;| |00003ca0| 0d 20 20 20 20 7d 0d 20 | 20 20 20 24 61 63 74 69 |. }. | $acti| |00003cb0| 6f 6e 3b 0d 7d 0d 0d 73 | 75 62 20 67 65 74 73 20 |on;.}..s|ub gets | |00003cc0| 7b 0d 20 20 20 20 6c 6f | 63 61 6c 28 24 2e 29 3b |{. lo|cal($.);| |00003cd0| 0d 20 20 20 20 3c 49 4e | 3e 3b 0d 7d 0d 0d 73 75 |. <IN|>;.}..su| |00003ce0| 62 20 63 61 74 63 68 20 | 7b 0d 20 20 20 20 24 73 |b catch |{. $s| |00003cf0| 69 67 6e 61 6c 20 3d 20 | 31 3b 0d 7d 0d 0d 73 75 |ignal = |1;.}..su| |00003d00| 62 20 73 75 62 20 7b 0d | 20 20 20 20 70 75 73 68 |b sub {.| push| |00003d10| 28 40 73 74 61 63 6b 2c | 20 24 73 69 6e 67 6c 65 |(@stack,| $single| |00003d20| 29 3b 0d 20 20 20 20 24 | 73 69 6e 67 6c 65 20 26 |);. $|single &| |00003d30| 3d 20 31 3b 0d 20 20 20 | 20 24 73 69 6e 67 6c 65 |= 1;. | $single| |00003d40| 20 7c 3d 20 34 20 69 66 | 20 24 23 73 74 61 63 6b | |= 4 if| $#stack| |00003d50| 20 3d 3d 20 24 64 65 65 | 70 3b 0d 20 20 20 20 69 | == $dee|p;. i| |00003d60| 66 20 28 77 61 6e 74 61 | 72 72 61 79 29 20 7b 0d |f (wanta|rray) {.| |00003d70| 09 40 69 20 3d 20 26 24 | 73 75 62 3b 0d 09 24 73 |.@i = &$|sub;..$s| |00003d80| 69 6e 67 6c 65 20 7c 3d | 20 70 6f 70 28 40 73 74 |ingle |=| pop(@st| |00003d90| 61 63 6b 29 3b 0d 09 40 | 69 3b 0d 20 20 20 20 7d |ack);..@|i;. }| |00003da0| 0d 20 20 20 20 65 6c 73 | 65 20 7b 0d 09 24 69 20 |. els|e {..$i | |00003db0| 3d 20 26 24 73 75 62 3b | 0d 09 24 73 69 6e 67 6c |= &$sub;|..$singl| |00003dc0| 65 20 7c 3d 20 70 6f 70 | 28 40 73 74 61 63 6b 29 |e |= pop|(@stack)| |00003dd0| 3b 0d 09 24 69 3b 0d 20 | 20 20 20 7d 0d 7d 0d 0d |;..$i;. | }.}..| |00003de0| 24 73 69 6e 67 6c 65 20 | 3d 20 31 3b 09 09 09 23 |$single |= 1;...#| |00003df0| 20 73 6f 20 69 74 20 73 | 74 6f 70 73 20 6f 6e 20 | so it s|tops on | |00003e00| 66 69 72 73 74 20 65 78 | 65 63 75 74 61 62 6c 65 |first ex|ecutable| |00003e10| 20 73 74 61 74 65 6d 65 | 6e 74 0d 40 68 69 73 74 | stateme|nt.@hist| |00003e20| 20 3d 20 28 27 3f 27 29 | 3b 0d 24 53 49 47 7b 27 | = ('?')|;.$SIG{'| |00003e30| 49 4e 54 27 7d 20 3d 20 | 22 44 42 27 63 61 74 63 |INT'} = |"DB'catc| |00003e40| 68 22 3b 0d 24 64 65 65 | 70 20 3d 20 31 30 30 3b |h";.$dee|p = 100;| |00003e50| 09 09 23 20 77 61 72 6e | 69 6e 67 20 69 66 20 73 |..# warn|ing if s| |00003e60| 74 61 63 6b 20 67 65 74 | 73 20 74 68 69 73 20 64 |tack get|s this d| |00003e70| 65 65 70 0d 24 77 69 6e | 64 6f 77 20 3d 20 31 30 |eep.$win|dow = 10| |00003e80| 3b 0d 24 70 72 65 76 69 | 65 77 20 3d 20 33 3b 0d |;.$previ|ew = 3;.| |00003e90| 0d 40 73 74 61 63 6b 20 | 3d 20 28 30 29 3b 0d 40 |.@stack |= (0);.@| |00003ea0| 41 52 47 53 20 3d 20 40 | 41 52 47 56 3b 0d 66 6f |ARGS = @|ARGV;.fo| |00003eb0| 72 20 28 40 61 72 67 73 | 29 20 7b 0d 20 20 20 20 |r (@args|) {. | |00003ec0| 73 2f 27 2f 5c 5c 27 2f | 67 3b 0d 20 20 20 20 73 |s/'/\\'/|g;. s| |00003ed0| 2f 28 2e 2a 29 2f 27 24 | 31 27 2f 20 75 6e 6c 65 |/(.*)/'$|1'/ unle| |00003ee0| 73 73 20 2f 5e 2d 3f 5b | 5c 64 2e 5d 2b 24 2f 3b |ss /^-?[|\d.]+$/;| |00003ef0| 0d 7d 0d 0d 69 66 20 28 | 2d 66 20 24 72 63 66 69 |.}..if (|-f $rcfi| |00003f00| 6c 65 29 20 7b 0d 20 20 | 20 20 64 6f 20 27 3a 24 |le) {. | do ':$| |00003f10| 72 63 66 69 6c 65 27 3b | 0d 7d 0d 65 6c 73 69 66 |rcfile';|.}.elsif| |00003f20| 20 28 2d 66 20 22 24 45 | 4e 56 7b 27 4d 50 57 27 | (-f "$E|NV{'MPW'| |00003f30| 7d 3a 24 72 63 66 69 6c | 65 22 29 20 7b 0d 20 20 |}:$rcfil|e") {. | |00003f40| 20 20 64 6f 20 22 24 45 | 4e 56 7b 27 4d 50 57 27 | do "$E|NV{'MPW'| |00003f50| 7d 3a 24 72 63 66 69 6c | 65 22 3b 0d 7d 0d 65 6c |}:$rcfil|e";.}.el| |00003f60| 73 69 66 20 28 2d 66 20 | 22 24 45 4e 56 7b 27 48 |sif (-f |"$ENV{'H| |00003f70| 4f 4d 45 27 7d 3a 24 72 | 63 66 69 6c 65 22 29 20 |OME'}:$r|cfile") | |00003f80| 7b 0d 20 20 20 20 64 6f | 20 22 24 45 4e 56 7b 27 |{. do| "$ENV{'| |00003f90| 48 4f 4d 45 27 7d 3a 24 | 72 63 66 69 6c 65 22 3b |HOME'}:$|rcfile";| |00003fa0| 0d 7d 0d 0d 31 3b 0d 00 | 00 00 00 00 00 00 00 00 |.}..1;..|........| |00003fb0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |00003fc0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |00003fd0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |00003fe0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |00003ff0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |00004000| 00 00 01 00 00 00 01 6e | 00 00 00 6e 00 00 00 3e |.......n|...n...>| |00004010| 27 33 21 2e 35 31 06 0c | 23 20 20 66 0b 2f 2a 2a |'3!.51..|# f./**| |00004020| 23 34 6a 8e 03 34 27 28 | 25 2f 35 33 04 32 27 28 |#4j..4'(|%/53.2'(| |00004030| 09 70 65 72 6c 64 62 2e | 70 6c 02 00 00 00 54 45 |.perldb.|pl....TE| |00004040| 58 54 4d 50 53 20 01 00 | 01 38 00 00 00 00 00 00 |XTMPS ..|.8......| |00004050| 00 00 54 45 58 54 4d 50 | 53 20 01 00 01 38 00 00 |..TEXTMP|S ...8..| |00004060| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |00004070| 00 00 a8 ee 29 01 00 00 | 3f 27 00 00 01 ac 34 68 |....)...|?'....4h| |00004080| 00 49 00 7e 2b 01 7e 74 | 2c 02 7f 7e 71 66 2d ab |.I.~+.~t|,..~qf-.| |00004090| 04 34 33 25 23 66 0e 29 | 34 34 33 05 32 23 30 23 |.43%#f.)|443.2#0#| |000040a0| 66 05 27 36 36 35 31 06 | 0a 27 34 34 3f 66 0d 23 |f.'6651.|.'44?f.#| |000040b0| 28 3f 29 28 37 f0 2e 2f | 01 34 68 4b 0d 4d 0a 2f |(?)(7../|.4hK.M./| |000040c0| 35 27 66 02 23 35 2d 32 | 29 36 66 0b 27 28 27 21 |5'f.#5-2|)6f.'('!| |000040d0| 23 34 66 77 7f 7e 77 2c | 02 7f 7e 75 66 2d ea 35 |#4fw.~w,|..~uf-.5| |000040e0| 33 01 2b 2f 24 31 01 00 | 34 35 05 2d 66 0a 33 22 |3.+/$1..|45.-f.3"| |000040f0| 29 2a 36 2e 66 35 03 22 | 66 04 2f 2a 2a 3a 01 32 |)*6.f5."|f./**:.2| |00004100| 00 00 00 48 00 09 4d 6f | 6e 61 63 6f 00 29 74 65 |...H..Mo|naco.)te| |00004110| 00 00 00 30 00 02 56 6c | 80 0a 80 0a 80 0a 7f f5 |...0..Vl|........| |00004120| 00 9f 00 14 00 9f 00 06 | 00 03 00 8c 00 14 01 dd |........|........| |00004130| 02 3d 00 8c 00 14 01 dd | 02 3d a8 ee 29 04 00 00 |.=......|.=..)...| |00004140| 0a 6d 00 00 0a 6d 00 00 | 20 97 01 00 00 00 00 1e |.m...m..| .......| |00004150| 00 8c 00 14 01 dd 02 3d | 00 8c 00 14 01 dd 02 3d |.......=|.......=| |00004160| 00 00 20 97 00 00 00 00 | 00 00 00 00 00 00 00 00 |.. .....|........| |00004170| 01 00 00 00 01 6e 00 00 | 00 6e 00 00 00 3e 00 3b |.....n..|.n...>.;| |00004180| f9 30 12 5e 00 00 00 1c | 00 3e 00 00 4d 50 53 52 |.0.^....|.>..MPSR| |00004190| 00 01 00 0a 03 ed ff ff | 00 00 00 00 00 00 00 00 |........|........| |000041a0| 03 f0 ff ff 00 00 00 4c | 00 3e 4f 18 00 00 00 00 |.......L|.>O.....| |000041b0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |000041c0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |000041d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |000041e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |000041f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| +--------+-------------------------+-------------------------+--------+--------+